Skip to content

Commit

Permalink
Updating Xamarin SDK for version 4.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
lowip committed Jan 30, 2024
1 parent d8371ed commit d5ba4d1
Show file tree
Hide file tree
Showing 93 changed files with 8,490 additions and 199 deletions.
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,19 @@ build
# Visual Studio
**/.vs
*.code-workspace

# iOS XCFrameworks (downloaded on demand)
appboy-component/src/ios-*/**/BrazeKit.xcframework
appboy-component/src/ios-*/**/BrazeLocation.xcframework
appboy-component/src/ios-*/**/BrazeUI.xcframework
appboy-component/src/ios-*/**/BrazeKitCompat.xcframework
appboy-component/src/ios-*/**/BrazeUICompat.xcframework
appboy-component/src/ios-*/**/SDWebImage.xcframework

# iOS libs (used for building / releasing)
# - We ignore those libs as they contain XCFrameworks that are way too large to be committed to git
appboy-component/lib/ios-braze*
appboy-component/lib/ios-sdwebimage

# Current Swift SDK versions
appboy-component/src/ios-*/.swift-sdk-version
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
## 4.0.0

##### Breaking
- This version updates the iOS binding to use the [Braze Swift SDK](https://github.com/braze-inc/braze-swift-sdk/). Most iOS public APIs have changed, please refer to our [migration guide](https://braze-inc.github.io/braze-swift-sdk/documentation/braze/appboy-migration-guide) (Swift) for guidance about replacement to use. We provide compatibility bindings to keep making use of the old public APIs.
- The iOS binding is now composed of multiple modules:
- **BrazeKit**: Main SDK library providing support for analytics and push notifications (nuget: [Braze.iOS.BrazeKit](https://www.nuget.org/packages/Braze.iOS.BrazeKit)).
- **BrazeUI**: Braze-provided user interface library for In-App Messages and Content Cards (nuget: [Braze.iOS.BrazeUI](https://www.nuget.org/packages/Braze.iOS.BrazeUI)).
- **BrazeLocation**: Location library providing support for location analytics and geofence monitoring (nuget: [Braze.iOS.BrazeLocation](https://www.nuget.org/packages/Braze.iOS.BrazeLocation)).
- **BrazeKitCompat**: Compatibility library with support for pre-4.0.0 APIs (nuget: [Braze.iOS.BrazeKitCompat](https://www.nuget.org/packages/Braze.iOS.BrazeKitCompat)).
- **BrazeUICompat**: Compatibility library with support for pre-4.0.0 UI APIs (nuget: [Braze.iOS.BrazeUICompat](https://www.nuget.org/packages/Braze.iOS.BrazeUICompat)).
- Refer to the _BrazeiOSMauiSampleApp_ for the new integration, and to _BrazeiOSMauiCompatSampleApp_ for usage of the compatibility modules.
- Updated the iOS binding to the [Braze Swift SDK 7.6.0](https://github.com/braze-inc/braze-swift-sdk/releases/tag/7.6.0)
- The iOS binding requires using .NET 7 for compatibility with Xcode 15.

## 3.0.0

#### Breaking
##### Breaking
- The NuGet package has been renamed from `AppboyPlatformXamariniOSBinding` to [`BrazePlatform.BrazeiOSBinding`](https://www.nuget.org/packages/BrazePlatform.BrazeiOSBinding/).
- To use the updated package, replace any instances of `using AppboyPlatformXamariniOSBinding;` with:
```
using Braze;
```
- This version requires using .NET 6+ and removes support for projects using the Xamarin framework. See [Microsoft's policy](https://dotnet.microsoft.com/en-us/platform/support/policy/xamarin) around the end of support for Xamarin.
- Updated the Android binding from [Braze Android SDK 26.3.2 to 29.0.1](https://github.com/braze-inc/braze-android-sdk/compare/v26.3.1...v29.0.1#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4ed).

##### Fixed
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ contain:

## Versioning

| Binding file name | Supported Xamarin Frameworks | Native Braze framework | Braze Xamarin SDK version|
|-|-|-|-|
|`BrazeAndroidBinding.sln`|.NET 6+ |Android SDK 24.2.0+|1.27.0+
|`AppboyPlatform.XamarinAndroidBinding.sln`|Xamarin.Android,<br/>Xamarin.Forms,<br/>.NET 5 and before| Android SDK 23.3.0 and before| 1.26.0 and before|
|`BrazeiOSBinding.sln`|.NET 6+|`Appboy_iOS_SDK.xcframework` version 4.6.0+|1.28.0+
|`AppboyPlatformXamariniOSBinding.sln`|Xamarin.iOS,<br/>Xamarin.Forms,<br/>.NET 5 and before|`Appboy_iOS_SDK.framework` version 4.4.1 and before| 1.27.0 and before
| Binding file name | Supported Xamarin Frameworks | Native Braze framework | Braze Xamarin SDK version |
|--------------------------------------------|-----------------------------------------------------------|-----------------------------------------------------|---------------------------|
| `BrazeAndroidBinding.sln` | .NET 6+ | Android SDK 24.2.0+ | 1.27.0+ |
| `AppboyPlatform.XamarinAndroidBinding.sln` | Xamarin.Android,<br/>Xamarin.Forms,<br/>.NET 5 and before | Android SDK 23.3.0 and before | 1.26.0 and before |
| `BrazeiOSBinding.sln` | .NET 7+ | Swift SDK 7.5.0+ | 4.0.0+ |
| `AppboyPlatformXamariniOSBinding.sln` | Xamarin.iOS,<br/>Xamarin.Forms,<br/>.NET 5 and before | `Appboy_iOS_SDK.framework` version 4.4.1 and before | 1.27.0 and before |

## Questions?

Expand Down
Binary file not shown.
Binary file not shown.
27 changes: 27 additions & 0 deletions appboy-component/nuget/Braze.iOS.BrazeKit.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.BrazeKit</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>BrazeKit Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0" />
</dependencies>
</metadata>
<files>
<file src="../lib/ios-brazekit/Braze.BrazeKit.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazekit/Braze.BrazeKit.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazekit/Braze.BrazeKit.resources/**/*" target="res/ios" />
<file src="../lib/ios-brazekit/Braze.iOS.BrazeKit.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
30 changes: 30 additions & 0 deletions appboy-component/nuget/Braze.iOS.BrazeKitCompat.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.BrazeKitCompat</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>BrazeKitCompat Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0">
<dependency id="Braze.iOS.BrazeKit" version="2.0.1" />
<dependency id="Braze.iOS.BrazeLocation" version="2.0.1" />
</group>
</dependencies>
</metadata>
<files>
<file src="../lib/ios-brazekitcompat/Braze.BrazeKitCompat.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazekitcompat/Braze.BrazeKitCompat.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazekitcompat/Braze.BrazeKitCompat.resources/**/*" target="res/ios" />
<file src="../lib/ios-brazekitcompat/Braze.iOS.BrazeKitCompat.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
27 changes: 27 additions & 0 deletions appboy-component/nuget/Braze.iOS.BrazeLocation.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.BrazeLocation</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>BrazeLocation Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0" />
</dependencies>
</metadata>
<files>
<file src="../lib/ios-brazelocation/Braze.BrazeLocation.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazelocation/Braze.BrazeLocation.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazelocation/Braze.BrazeLocation.resources/**/*" target="res/ios" />
<file src="../lib/ios-brazelocation/Braze.iOS.BrazeLocation.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
29 changes: 29 additions & 0 deletions appboy-component/nuget/Braze.iOS.BrazeUI.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.BrazeUI</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>BrazeUI Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0">
<dependency id="Braze.iOS.BrazeKit" version="2.0.1" />
</group>
</dependencies>
</metadata>
<files>
<file src="../lib/ios-brazeui/Braze.BrazeUI.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazeui/Braze.BrazeUI.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazeui/Braze.BrazeUI.resources/**/*" target="res/ios" />
<file src="../lib/ios-brazeui/Braze.iOS.BrazeUI.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
30 changes: 30 additions & 0 deletions appboy-component/nuget/Braze.iOS.BrazeUICompat.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.BrazeUICompat</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>BrazeUICompat Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0">
<dependency id="Braze.iOS.BrazeKitCompat" version="2.0.1" />
<dependency id="Braze.iOS.SDWebImage" version="2.0.1" />
</group>
</dependencies>
</metadata>
<files>
<file src="../lib/ios-brazeuicompat/Braze.BrazeUICompat.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazeuicompat/Braze.BrazeUICompat.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-brazeuicompat/Braze.BrazeUICompat.resources/**/*" target="res/ios" />
<file src="../lib/ios-brazeuicompat/Braze.iOS.BrazeUICompat.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
27 changes: 27 additions & 0 deletions appboy-component/nuget/Braze.iOS.SDWebImage.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Braze.iOS.SDWebImage</id>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
<license type="file">LICENSE.txt</license>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Braze SDWebImage Xamarin iOS .NET-7 Binding</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2024</copyright>
<tags>Braze Appboy</tags>
<dependencies>
<group targetFramework="net7.0-ios11.0" />
</dependencies>
</metadata>
<files>
<file src="../lib/ios-sdwebimage/Braze.SDWebImage.dll" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-sdwebimage/Braze.SDWebImage.pdb" target="lib/net7.0-ios11.0" />
<file src="../lib/ios-sdwebimage/Braze.SDWebImage.resources/**/*" target="res/ios" />
<file src="../lib/ios-sdwebimage/Braze.iOS.SDWebImage.targets" target="build/net7.0-ios11.0" />
<file src="../../Public/braze-logo.png" target="images/" />
<file src="../../Public/LICENSE.txt" target="" />
</files>
</package>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>BrazePlatform.BrazeAndroidBinding</id>
<version>3.0.0</version>
<version>4.0.0</version>
<authors>Braze</authors>
<owners>Braze</owners>
<projectUrl>https://github.com/braze-inc/braze-xamarin-sdk</projectUrl>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 25.0.1706.8
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrazeiOSMauiCompatSampleApp", "BrazeiOSMauiCompatSampleApp\BrazeiOSMauiCompatSampleApp.csproj", "{D4E1BE48-F5A3-4812-B013-229C9BB8A07F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Braze.BrazeKitCompat", "..\..\..\src\ios-brazekitcompat\Braze.BrazeKitCompat.csproj", "{5509DFCC-AAF2-45E8-A301-C1A62A8D8729}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Braze.BrazeUICompat", "..\..\..\src\ios-brazeuicompat\Braze.BrazeUICompat.csproj", "{C190E563-1D68-4D7C-9C65-E82ACFE611D2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D4E1BE48-F5A3-4812-B013-229C9BB8A07F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4E1BE48-F5A3-4812-B013-229C9BB8A07F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4E1BE48-F5A3-4812-B013-229C9BB8A07F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4E1BE48-F5A3-4812-B013-229C9BB8A07F}.Release|Any CPU.Build.0 = Release|Any CPU
{5509DFCC-AAF2-45E8-A301-C1A62A8D8729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5509DFCC-AAF2-45E8-A301-C1A62A8D8729}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5509DFCC-AAF2-45E8-A301-C1A62A8D8729}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5509DFCC-AAF2-45E8-A301-C1A62A8D8729}.Release|Any CPU.Build.0 = Release|Any CPU
{C190E563-1D68-4D7C-9C65-E82ACFE611D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C190E563-1D68-4D7C-9C65-E82ACFE611D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C190E563-1D68-4D7C-9C65-E82ACFE611D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C190E563-1D68-4D7C-9C65-E82ACFE611D2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {22971D23-2904-4438-B033-3B9D01D03403}
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version = "1.0" encoding = "UTF-8" ?>
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:BrazeiOSMauiCompatSampleApp"
x:Class="BrazeiOSMauiCompatSampleApp.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace BrazeiOSMauiCompatSampleApp;

public partial class App : Application
{

public App()
{
InitializeComponent();

MainPage = new NavigationPage(new MainPage());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net7.0-ios</TargetFrameworks>

<OutputType>Exe</OutputType>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>

<!-- App Identifier -->
<ApplicationTitle>BrazeiOSMauiCompatSampleApp</ApplicationTitle>
<ApplicationId>com.braze.BrazeiOSMauiCompatSampleApp</ApplicationId>
<ApplicationIdGuid>b8cecec5-8999-40af-92cb-0006ed7450af</ApplicationIdGuid>

<!-- Versions -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<SupportedOSPlatformVersion>11.0</SupportedOSPlatformVersion>
</PropertyGroup>

<PropertyGroup>
<CreatePackage>false</CreatePackage>
</PropertyGroup>

<PropertyGroup>
<CodesignProvision>Automatic</CodesignProvision>
<CodesignKey>iPhone Developer</CodesignKey>
<CodesignEntitlements>Platforms\iOS\Entitlements.plist</CodesignEntitlements>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\..\src\ios-brazekitcompat\Braze.BrazeKitCompat.csproj" />
<ProjectReference Include="..\..\..\..\src\ios-brazeuicompat\Braze.BrazeUICompat.csproj" />
</ItemGroup>
<!-- <ItemGroup>
<PackageReference Include="Braze.iOS.BrazeKitCompat" Version="*" />
<PackageReference Include="Braze.iOS.BrazeUICompat" Version="*" />
</ItemGroup> -->

<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" />
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
<MauiImage Include="Resources\Images\*" />
<MauiImage Update="Resources\Images\dotnet_bot.svg" BaseSize="168,208" />
<MauiFont Include="Resources\Fonts\*" />
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="BrazeiOSMauiCompatSampleApp.MainPage">
<!--Nothing here because we add views programmatically in the c# file-->

</ContentPage>
Loading

0 comments on commit d5ba4d1

Please sign in to comment.