From 98d3084efd525d959fcdb758fa21650a26c5ac87 Mon Sep 17 00:00:00 2001 From: Josh Yaganeh <319444+jyaganeh@users.noreply.github.com> Date: Wed, 31 Jan 2024 15:37:14 -0800 Subject: [PATCH] [MOBILE-4102] Release 19.1.0 (#11) --- .github/workflows/ci.yaml | 2 +- .github/workflows/release.yaml | 2 +- CHANGELOG.md | 16 ++- Cartfile | 2 +- DEV_README.md | 4 +- Directory.Build.props | 12 +- MIGRATION.md | 16 ++- MauiSample/MauiSample.csproj | 2 + MauiSample/Platforms/iOS/AppDelegate.cs | 2 +- airship.properties | 8 +- binderator/config.json | 36 ++--- .../Transforms/Metadata.xml | 2 + src/Airship.Net/Platforms/Android/Airship.cs | 129 ++++++++---------- src/Airship.Net/Platforms/iOS/Airship.cs | 25 ++-- .../AirshipBindings.iOS.Automation.csproj | 2 +- .../AirshipBindings.iOS.Basement.csproj | 2 +- .../AirshipBindings.iOS.Core.csproj | 2 +- .../StructsAndEnums.cs | 5 +- .../AirshipBindings.iOS.MessageCenter.csproj | 2 +- ...gs.iOS.NotificationContentExtension.csproj | 2 +- ...gs.iOS.NotificationServiceExtension.csproj | 2 +- ...irshipBindings.iOS.PreferenceCenter.csproj | 2 +- src/SharedAssemblyInfo.Common.cs | 2 +- src/SharedAssemblyInfo.CrossPlatform.cs | 2 +- src/SharedAssemblyInfo.iOS.cs | 2 +- 25 files changed, 148 insertions(+), 135 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 801cb7b8..253666fb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -3,7 +3,7 @@ name: CI on: [pull_request] env: - DEVELOPER_DIR: /Applications/Xcode_15.0.app + DEVELOPER_DIR: /Applications/Xcode_15.1.app DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7fc45dce..3d162025 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -6,7 +6,7 @@ on: - "[0-9]+.[0-9]+.[0-9]+*" env: - DEVELOPER_DIR: /Applications/Xcode_15.0.app + DEVELOPER_DIR: /Applications/Xcode_15.1.app DOTNET_CLI_TELEMETRY_OPTOUT: 1 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_NOLOGO: 1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3740e9c4..78fef251 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,26 @@ # Airship DotNet Changelog +## Version 19.1.0 - Jan 25, 2024 +Minor release that updates to Airship SDK to iOS 17.7.3 and Android 17.7.2, fixes an iOS custom event properties reporting issue, and Android contact subscription list editing. Apps that target iOS and make use of custom events or Android and make use of contact subscription editing should update. + +### Changes +- Updated iOS SDK to 17.7.3 +- Updated Android SDK to 17.7.2 +- Fixed a bug that prevented custom event properties from being reported on iOS +- Fixed contact subscription list updates (`EditContactSubscriptionLists`) on Android +- Deprecated iOS `Trace` log level and add the replacement `Verbose` log level. + ## Version 19.0.0 - Nov 21, 2023 Major release that updates the Airship bindings and cross-platform libraries to target .NET 8.0. The Airship .NET SDK now requires .NET 8.0 (`net8.0-android` and `net8.0-ios`) as the minimum target framework, and iOS 14+ as the minimum deployment version with Xcode 15+. -## Changes +### Changes - Updated iOS SDK to 17.6.1 - Resolved build issues in Windows Visual Studio. Linked Mac builds are now working as expected. ## Version 18.0.0 - Nov 10, 2023 Major release that updates to Airship SDK 17.x. This release adds support for Stories, In-App experiences downstream of a sequence in Journeys, and improves SDK auth. The .NET SDK now requires .NET 7.0 (`net7.0-android` and `net7.0-ios`) as the minimum target framework, and iOS 14+ as the minimum deployment version with Xcode 14.3+. -## Changes +### Changes - Updated iOS SDK to 17.6.0 - Updated Android SDK to 17.5.0 - Added the ability to update Channel and Contact subscriptions to the common .NET library @@ -19,7 +29,7 @@ Major release that updates to Airship SDK 17.x. This release adds support for St See the [Migration Guide](https://github.com/urbanairship/airship-dotnet/tree/main/MIGRATION.md) for further details. -## Known Issues +### Known Issues Build/run via a linked Mac from Visual Studio on Windows is not currently working as expected. This appears to be a known issue and is expected to be fixed in the upcoming .NET 8 release. In our testing, this issue impacts other SDKs that make use of XCFrameworks, and is not limited to Airship SDKs. We will continue monitoring the situation and update with any new workarounds or fixes that become available. Builds and runs performed directly on a Mac are not impacted by this issue. diff --git a/Cartfile b/Cartfile index 97dbad6a..97145c53 100644 --- a/Cartfile +++ b/Cartfile @@ -1 +1 @@ -github "urbanairship/ios-library" == 17.6.1 +github "urbanairship/ios-library" == 17.7.3 diff --git a/DEV_README.md b/DEV_README.md index 63beb312..8a58dfb0 100644 --- a/DEV_README.md +++ b/DEV_README.md @@ -5,12 +5,12 @@ ### Requirements * Visual Studio for Mac ([stable](https://visualstudio.microsoft.com/vs/mac/) or [preview](https://visualstudio.microsoft.com/vs/mac/preview/)) -* A supported Xcode version (at the time of writing, VS 2022 supported Xcode 14.2) +* A supported Xcode version (at the time of writing, VS 2022 recommends Xcode 15.1+) * OpenJDK 11 * Using [Homebrew](https://brew.sh/): `brew install openjdk@11` * Or [SDKMAN!](https://sdkman.io/): `sdk install java 11.0.18-zulu` * Android SDK: API 31+ platform, emulator, build tools, command line tools, etc. -* .NET6 SDK (install via VS) +* .NET8 SDK (install via VS) * .NET Workloads (install via VS): maui, android, ios * Doxygen & Graphviz (`brew install doxygen graphviz`) * Carthage (`brew install carthage`) diff --git a/Directory.Build.props b/Directory.Build.props index f960f63e..977d1ae5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -5,15 +5,15 @@ - 17.5.0 - 17.5.0.1 + 17.7.2 + 17.7.2 - 17.6.1 - 17.6.1 + 17.7.3 + 17.7.3 - 19.0.0 - 19.0.0 + 19.1.0 + 19.1.0 diff --git a/MIGRATION.md b/MIGRATION.md index c9cd6e29..58165062 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,19 +1,29 @@ # Migration Guide -## 17.x to 18.x +## 18.x to 19.x ### .NET Version -This version of the plugin now requires .NET 7.0 (`net7.0-android` and `net7.0-ios`) as the min target framework. +This version of the plugin now requires .NET 8.0 (`net8.0-android` and `net8.0-ios`) as the min target framework. ### Minimum iOS Version -This version of the plugin now requires iOS 14+ as the min deployment target and Xcode 14.3+. +This version of the plugin requires iOS 14+ as the min deployment target and Xcode 15+. ### iOS Log Levels The `TRACE` level has been renamed to `VERBOSE`, for consistency with other platforms/frameworks. +## 17.x to 18.x + +### .NET Version + +This version of the plugin now requires .NET 7.0 (`net7.0-android` and `net7.0-ios`) as the min target framework. + +### Minimum iOS Version + +This version of the plugin now requires iOS 14+ as the min deployment target and Xcode 14.3+. + ### API Changes #### Methods diff --git a/MauiSample/MauiSample.csproj b/MauiSample/MauiSample.csproj index 64f3292f..4fbfb704 100644 --- a/MauiSample/MauiSample.csproj +++ b/MauiSample/MauiSample.csproj @@ -33,6 +33,8 @@ Platforms\iOS\Entitlements.plist None false + iossimulator-x64 + iossimulator-arm64 diff --git a/MauiSample/Platforms/iOS/AppDelegate.cs b/MauiSample/Platforms/iOS/AppDelegate.cs index 6d2d4db7..7736680e 100644 --- a/MauiSample/Platforms/iOS/AppDelegate.cs +++ b/MauiSample/Platforms/iOS/AppDelegate.cs @@ -14,7 +14,7 @@ public override bool FinishedLaunching(UIApplication application, NSDictionary l { // Set log level for debugging config loading (optional) // It will be set to the value in the loaded config upon takeOff - UAirship.LogLevel = UALogLevel.Trace; + UAirship.LogLevel = UALogLevel.Verbose; // Populate AirshipConfig.plist with your app's info from https://go.urbanairship.com // or set runtime properties here. diff --git a/airship.properties b/airship.properties index 1af0784e..9c65235d 100644 --- a/airship.properties +++ b/airship.properties @@ -1,9 +1,9 @@ # Airship native SDK versions -iosVersion = 17.6.1 -androidVersion = 17.5.0 +iosVersion = 17.7.3 +androidVersion = 17.7.2 # Airship.Net cross-platform version -crossPlatformVersion = 19.0.0 +crossPlatformVersion = 19.1.0 # Filename of the iOS SDK zip file iosFrameworkZip = Airship-Xcode15.zip @@ -12,7 +12,7 @@ iosFrameworkZip = Airship-Xcode15.zip # If > 0, the revision number will be added to the versions # defined above as a 4th segment (i.e., MAJOR.MINOR.PATCH.REVISION). # If = 0, NuGet packages will be versioned using standard 3-segment semver. -androidRevision = 1 +androidRevision = 0 iosRevision = 0 crossPlatformRevision = 0 diff --git a/binderator/config.json b/binderator/config.json index 14906f51..ef6d0814 100644 --- a/binderator/config.json +++ b/binderator/config.json @@ -17,72 +17,72 @@ { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-adm", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.Adm", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-automation", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.Automation", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-core", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.Core", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-fcm", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.Fcm", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-feature-flag", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.FeatureFlag", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-layout", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.Layout", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-live-update", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.LiveUpdate", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-message-center", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.MessageCenter", "dependencyOnly": false }, { "groupId": "com.urbanairship.android", "artifactId": "urbanairship-preference-center", - "version": "17.5.0", - "nugetVersion": "17.5.0", + "version": "17.7.2", + "nugetVersion": "17.7.2", "nugetId": "Airship.Net.Android.PreferenceCenter", "dependencyOnly": false }, diff --git a/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml b/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml index 5319c771..c8fb9ec3 100644 --- a/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml +++ b/binderator/source/com.urbanairship.android/urbanairship-automation/Transforms/Metadata.xml @@ -12,6 +12,8 @@ UrbanAirship.Iam.Tags UrbanAirship.Iam.View + java.lang.Object + diff --git a/src/Airship.Net/Platforms/Android/Airship.cs b/src/Airship.Net/Platforms/Android/Airship.cs index 93675117..161b3440 100644 --- a/src/Airship.Net/Platforms/Android/Airship.cs +++ b/src/Airship.Net/Platforms/Android/Airship.cs @@ -1,12 +1,12 @@ /* Copyright Airship and Contributors */ +using Com.Urbanairship.Contacts; using Java.Util; using Java.Util.Concurrent; using UrbanAirship; using UrbanAirship.Automation; using UrbanAirship.Actions; using UrbanAirship.Channel; -//using Urbanairship.Contacts; using UrbanAirship.MessageCenter; using UrbanAirship.Push; using AttributeEditor = AirshipDotNet.Attributes.AttributeEditor; @@ -254,12 +254,12 @@ public void AddCustomEvent(Analytics.CustomEvent customEvent) { foreach (dynamic property in customEvent.PropertyList) { - if (string.IsNullOrEmpty(property.name)) + if (string.IsNullOrEmpty(property.Name)) { continue; } - builder.AddProperty(property.name, property.value); + builder.AddProperty(property.Name, property.Value); } } @@ -322,7 +322,7 @@ public void InboxMessages(Action> listMessages) listMessages(messagesList); } - private Date FromDateTime(DateTime dateTime) + private Date FromDateTime(DateTime? dateTime) { if (dateTime == null) { @@ -332,7 +332,7 @@ private Date FromDateTime(DateTime dateTime) return new Date(epochSeconds * 1000); } - private static DateTime? FromDate(Date date) + private static DateTime? FromDate(Date? date) { if (date == null) { @@ -344,7 +344,7 @@ private Date FromDateTime(DateTime dateTime) public Channel.TagGroupsEditor EditContactTagGroups() { - return new Channel.TagGroupsEditor((List payload) => + return new Channel.TagGroupsEditor(payload => { var editor = UAirship.Shared().Contact.EditTagGroups(); TagGroupHelper(payload, editor); @@ -354,7 +354,7 @@ public Channel.TagGroupsEditor EditContactTagGroups() public Channel.TagGroupsEditor EditChannelTagGroups() { - return new Channel.TagGroupsEditor((List payload) => + return new Channel.TagGroupsEditor( payload => { var editor = UAirship.Shared().Channel.EditTagGroups(); TagGroupHelper(payload, editor); @@ -365,16 +365,15 @@ public Channel.TagGroupsEditor EditChannelTagGroups() public AttributeEditor EditAttributes() => EditChannelAttributes(); public AttributeEditor EditChannelAttributes() => - new((List operations) => + new(operations => { var editor = UAirship.Shared().Channel.EditAttributes(); ApplyAttributesOperations(editor, operations); editor.Apply(); }); - /// public AttributeEditor EditContactAttributes() => - new((List operations) => + new(operations => { var editor = UAirship.Shared().Contact.EditAttributes(); ApplyAttributesOperations(editor, operations); @@ -383,7 +382,7 @@ public AttributeEditor EditContactAttributes() => public ChannelSubscriptionListEditor EditChannelSubscriptionLists() { - return new Channel.SubscriptionListEditor((List payload) => + return new ChannelSubscriptionListEditor(payload => { var editor = UAirship.Shared().Channel.EditSubscriptionLists(); ApplyChannelSubscriptionListHelper(payload, editor); @@ -393,11 +392,11 @@ public ChannelSubscriptionListEditor EditChannelSubscriptionLists() public ContactSubscriptionListEditor EditContactSubscriptionLists() { - return new Contact.SubscriptionListEditor((List payload) => + return new ContactSubscriptionListEditor(payload => { - //var editor = UAirship.Shared().Contact.EditSubscriptionLists(); - ApplyContactSubscriptionListHelper(payload); - //editor.Apply(); + var editor = UAirship.Shared().Contact.EditSubscriptionLists(); + ApplyContactSubscriptionListHelper(payload, editor); + editor.Apply(); }); } @@ -445,9 +444,8 @@ private void ApplyAttributesOperations(UrbanAirship.Channel.AttributeEditor edit private static void TagGroupHelper(List payload, TagGroupsEditor editor) { - foreach (Channel.TagGroupsEditor.TagOperation tagOperation in payload) + foreach (var tagOperation in payload) { - switch (tagOperation.operationType) { case Channel.TagGroupsEditor.OperationType.ADD: @@ -459,91 +457,80 @@ private static void TagGroupHelper(List pa case Channel.TagGroupsEditor.OperationType.SET: editor.SetTags(tagOperation.group, tagOperation.tags); break; - default: - break; } } } - private void ApplyChannelSubscriptionListHelper(List operations, UrbanAirship.Channel.SubscriptionListEditor editor) + private void ApplyChannelSubscriptionListHelper(List operations, UrbanAirship.Channel.SubscriptionListEditor editor) { - foreach (Channel.SubscriptionListEditor.SubscriptionListOperation operation in operations) + foreach (var operation in operations) { - if (!Enum.IsDefined(typeof(Channel.SubscriptionListEditor.OperationType), operation.OperationType)) + if (!Enum.IsDefined(typeof(ChannelSubscriptionListEditor.OperationType), operation.OperationType)) { continue; } switch (operation.OperationType) { - case Channel.SubscriptionListEditor.OperationType.SUBSCRIBE: + case ChannelSubscriptionListEditor.OperationType.SUBSCRIBE: editor.Subscribe(operation.List); break; - case Channel.SubscriptionListEditor.OperationType.UNSUBSCRIBE: + case ChannelSubscriptionListEditor.OperationType.UNSUBSCRIBE: editor.Unsubscribe(operation.List); break; } } } - // FIXME: - //private void ApplyContactSubscriptionListHelper(List operations, ScopedSubscriptionListEditor editor) - private void ApplyContactSubscriptionListHelper(List operations) + private void ApplyContactSubscriptionListHelper(List operations, ScopedSubscriptionListEditor editor) { - - foreach (Contact.SubscriptionListEditor.SubscriptionListOperation operation in operations) + foreach (var operation in operations) { - if (!Enum.IsDefined(typeof(Contact.SubscriptionListEditor.OperationType), operation.OperationType)) + if (!Enum.IsDefined(typeof(ContactSubscriptionListEditor.OperationType), operation.OperationType)) { continue; } - //string scope = operation.scope; - //string[] scopes = { "app", "web", "email", "sms" }; - //if (scopes.Any(scope.Contains)) - //{ - // Scope channelScope = Scope.App; - // if (operation.Scope == "app") - // { - // channelScope = Scope.App; - // } - // else if (operation.scope == "web") - // { - // channelScope = Scope.Web; - // } - // else if (operation.Scope == "email") - // { - // channelScope = Scope.Email; - // } - // else if (operation.Scope == "sms") - // { - // channelScope = Scope.Sms; - // } - - // switch (operation.OperationType) - // { - // case Contact.SubscriptionListEditor.OperationType.SUBSCRIBE: - // editor.Subscribe(operation.List, channelScope); - // break; - // case Contact.SubscriptionListEditor.OperationType.UNSUBSCRIBE: - // editor.Unsubscribe(operation.List, channelScope); - // break; - // } - //} + string scope = operation.Scope; + string[] scopes = { "app", "web", "email", "sms" }; + if (scopes.Contains(scope)) + { + Scope channelScope = Scope.App; + + if (operation.Scope == "app") + { + channelScope = Scope.App; + } + else if (operation.Scope == "web") + { + channelScope = Scope.Web; + } + else if (operation.Scope == "email") + { + channelScope = Scope.Email; + } + else if (operation.Scope == "sms") + { + channelScope = Scope.Sms; + } + + switch (operation.OperationType) + { + case Contact.SubscriptionListEditor.OperationType.SUBSCRIBE: + editor.Subscribe(operation.List, channelScope); + break; + case Contact.SubscriptionListEditor.OperationType.UNSUBSCRIBE: + editor.Unsubscribe(operation.List, channelScope); + break; + } + } } } public bool InAppAutomationEnabled { - get - { - return InAppAutomation.Shared().Enabled; - } - - set - { - InAppAutomation.Shared().Enabled = value; - } + get => InAppAutomation.Shared().Enabled; + set => InAppAutomation.Shared().Enabled = value; } public bool InAppAutomationPaused diff --git a/src/Airship.Net/Platforms/iOS/Airship.cs b/src/Airship.Net/Platforms/iOS/Airship.cs index cbc40198..b8bf0bdd 100644 --- a/src/Airship.Net/Platforms/iOS/Airship.cs +++ b/src/Airship.Net/Platforms/iOS/Airship.cs @@ -262,13 +262,13 @@ public void AddCustomEvent(CustomEvent customEvent) NSMutableDictionary propertyDictionary = new(); foreach (dynamic property in customEvent.PropertyList) { - if (string.IsNullOrEmpty(property.name)) + if (string.IsNullOrEmpty(property.Name)) { continue; } - NSString key = (NSString)property.name; - NSObject value = NSObject.FromObject(property.value); + NSString key = (NSString)property.Name; + NSObject value = NSObject.FromObject(property.Value); if (property is CustomEvent.Property stringArrayProperty) { @@ -283,8 +283,7 @@ public void AddCustomEvent(CustomEvent customEvent) } if (propertyDictionary.Count > 0) { - //TODO: - //uaEvent.Properties = new NSDictionary(propertyDictionary.Keys, propertyDictionary.Values); + uaEvent.Properties = new NSDictionary(propertyDictionary.Keys, propertyDictionary.Values); } } @@ -391,7 +390,7 @@ public void InboxMessages(Action> listMessages) public Channel.TagGroupsEditor EditChannelTagGroups() { - return new((List payload) => + return new(payload => { ChannelTagGroupHelper(payload, () => { @@ -402,7 +401,7 @@ public Channel.TagGroupsEditor EditChannelTagGroups() public Channel.TagGroupsEditor EditContactTagGroups() { - return new((List payload) => + return new(payload => { ContactTagGroupHelper(payload); }); @@ -413,7 +412,7 @@ public Channel.TagGroupsEditor EditContactTagGroups() public AttributeEditor EditChannelAttributes() { - return new((List operations) => + return new(operations => { ApplyChannelAttributesOperations(operations); }); @@ -421,7 +420,7 @@ public AttributeEditor EditChannelAttributes() public AttributeEditor EditContactAttributes() { - return new((List operations) => + return new(operations => { ApplyContactAttributesOperations(operations); }); @@ -430,7 +429,7 @@ public AttributeEditor EditContactAttributes() public Channel.SubscriptionListEditor EditChannelSubscriptionLists() { - return new Channel.SubscriptionListEditor((List payload) => + return new Channel.SubscriptionListEditor(payload => { ApplyChannelSubscriptionListHelper(payload); }); @@ -438,7 +437,7 @@ public Channel.SubscriptionListEditor EditChannelSubscriptionLists() public Contact.SubscriptionListEditor EditContactSubscriptionLists() { - return new Contact.SubscriptionListEditor((List payload) => + return new Contact.SubscriptionListEditor(payload => { ApplyContactSubscriptionListHelper(payload); }); @@ -597,7 +596,7 @@ private void ApplyChannelSubscriptionListHelper(List { - foreach (Channel.SubscriptionListEditor.SubscriptionListOperation operation in operations) + foreach (var operation in operations) { if (!Enum.IsDefined(typeof(Channel.SubscriptionListEditor.OperationType), operation.OperationType)) { @@ -624,7 +623,7 @@ private void ApplyContactSubscriptionListHelper(List { - foreach (Contact.SubscriptionListEditor.SubscriptionListOperation operation in operations) + foreach (var operation in operations) { if (!Enum.IsDefined(typeof(Contact.SubscriptionListEditor.OperationType), operation.OperationType)) { diff --git a/src/AirshipBindings.iOS.Automation/AirshipBindings.iOS.Automation.csproj b/src/AirshipBindings.iOS.Automation/AirshipBindings.iOS.Automation.csproj index 73e525a6..5cbd1ed8 100644 --- a/src/AirshipBindings.iOS.Automation/AirshipBindings.iOS.Automation.csproj +++ b/src/AirshipBindings.iOS.Automation/AirshipBindings.iOS.Automation.csproj @@ -11,7 +11,7 @@ Airship.Net.iOS.Automation Airship iOS SDK - Automation Automation support for Airship SDK - net7.0-ios + net8.0-ios enable true true diff --git a/src/AirshipBindings.iOS.Basement/AirshipBindings.iOS.Basement.csproj b/src/AirshipBindings.iOS.Basement/AirshipBindings.iOS.Basement.csproj index 174a8624..19ac884a 100644 --- a/src/AirshipBindings.iOS.Basement/AirshipBindings.iOS.Basement.csproj +++ b/src/AirshipBindings.iOS.Basement/AirshipBindings.iOS.Basement.csproj @@ -11,7 +11,7 @@ Airship.Net.iOS.Basement Airship iOS SDK - Basement Basement module for Airship SDK - net7.0-ios + net8.0-ios enable true true diff --git a/src/AirshipBindings.iOS.Core/AirshipBindings.iOS.Core.csproj b/src/AirshipBindings.iOS.Core/AirshipBindings.iOS.Core.csproj index ae1bc3b6..a3aae8f8 100644 --- a/src/AirshipBindings.iOS.Core/AirshipBindings.iOS.Core.csproj +++ b/src/AirshipBindings.iOS.Core/AirshipBindings.iOS.Core.csproj @@ -9,7 +9,7 @@ Airship.Net.iOS.Core Airship iOS SDK - Core Core of Airship SDK - net7.0-ios + net8.0-ios enable true true diff --git a/src/AirshipBindings.iOS.Core/StructsAndEnums.cs b/src/AirshipBindings.iOS.Core/StructsAndEnums.cs index 57e6dffd..5072d3b5 100644 --- a/src/AirshipBindings.iOS.Core/StructsAndEnums.cs +++ b/src/AirshipBindings.iOS.Core/StructsAndEnums.cs @@ -2,6 +2,7 @@ Copyright Airship and Contributors */ +using System; using ObjCRuntime; namespace UrbanAirship @@ -48,7 +49,9 @@ public enum UALogLevel : long Warn = 2, Info = 3, Debug = 4, - Trace = 5 + [Obsolete("Use Verbose instead. Trace will be removed in a future release.")] + Trace = 5, + Verbose = 5 } [Native] diff --git a/src/AirshipBindings.iOS.MessageCenter/AirshipBindings.iOS.MessageCenter.csproj b/src/AirshipBindings.iOS.MessageCenter/AirshipBindings.iOS.MessageCenter.csproj index aac6ceae..acd562b7 100644 --- a/src/AirshipBindings.iOS.MessageCenter/AirshipBindings.iOS.MessageCenter.csproj +++ b/src/AirshipBindings.iOS.MessageCenter/AirshipBindings.iOS.MessageCenter.csproj @@ -11,7 +11,7 @@ Airship.Net.iOS.MessageCenter Airship iOS SDK - MessageCenter Message Center support for the Airship SDK - net7.0-ios + net8.0-ios enable true true diff --git a/src/AirshipBindings.iOS.NotificationContentExtension/AirshipBindings.iOS.NotificationContentExtension.csproj b/src/AirshipBindings.iOS.NotificationContentExtension/AirshipBindings.iOS.NotificationContentExtension.csproj index a1f66bb4..30e46626 100644 --- a/src/AirshipBindings.iOS.NotificationContentExtension/AirshipBindings.iOS.NotificationContentExtension.csproj +++ b/src/AirshipBindings.iOS.NotificationContentExtension/AirshipBindings.iOS.NotificationContentExtension.csproj @@ -9,7 +9,7 @@ Airship.Net.iOS.NotificationContentExtension Airship iOS SDK - Notification Content Extension Notification content extension support for Airship SDK - net7.0-ios + net8.0-ios true enable false diff --git a/src/AirshipBindings.iOS.NotificationServiceExtension/AirshipBindings.iOS.NotificationServiceExtension.csproj b/src/AirshipBindings.iOS.NotificationServiceExtension/AirshipBindings.iOS.NotificationServiceExtension.csproj index 10b6ebd4..3952e2b1 100644 --- a/src/AirshipBindings.iOS.NotificationServiceExtension/AirshipBindings.iOS.NotificationServiceExtension.csproj +++ b/src/AirshipBindings.iOS.NotificationServiceExtension/AirshipBindings.iOS.NotificationServiceExtension.csproj @@ -9,7 +9,7 @@ Airship.Net.iOS.NotificationServiceExtension Airship iOS SDK - Notification Service Extension Notification service extension support for Airship SDK - net7.0-ios + net8.0-ios enable true true diff --git a/src/AirshipBindings.iOS.PreferenceCenter/AirshipBindings.iOS.PreferenceCenter.csproj b/src/AirshipBindings.iOS.PreferenceCenter/AirshipBindings.iOS.PreferenceCenter.csproj index 7ca1ab86..3ac78312 100644 --- a/src/AirshipBindings.iOS.PreferenceCenter/AirshipBindings.iOS.PreferenceCenter.csproj +++ b/src/AirshipBindings.iOS.PreferenceCenter/AirshipBindings.iOS.PreferenceCenter.csproj @@ -9,7 +9,7 @@ Airship.Net.iOS.PreferenceCenter Airship iOS SDK - Preference Center Preference Center support for Airship SDK - net7.0-ios + net8.0-ios true enable true diff --git a/src/SharedAssemblyInfo.Common.cs b/src/SharedAssemblyInfo.Common.cs index 863199ee..738615d9 100644 --- a/src/SharedAssemblyInfo.Common.cs +++ b/src/SharedAssemblyInfo.Common.cs @@ -6,4 +6,4 @@ // Change them to the values specific to your project. // Cross-platform version of the plugin -[assembly: UACrossPlatformVersion ("19.0.0")] +[assembly: UACrossPlatformVersion ("19.1.0")] diff --git a/src/SharedAssemblyInfo.CrossPlatform.cs b/src/SharedAssemblyInfo.CrossPlatform.cs index e76bf22f..1f1e4093 100644 --- a/src/SharedAssemblyInfo.CrossPlatform.cs +++ b/src/SharedAssemblyInfo.CrossPlatform.cs @@ -12,5 +12,5 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion ("19.0.0")] +[assembly: AssemblyVersion ("19.1.0")] diff --git a/src/SharedAssemblyInfo.iOS.cs b/src/SharedAssemblyInfo.iOS.cs index b017d271..7560a646 100644 --- a/src/SharedAssemblyInfo.iOS.cs +++ b/src/SharedAssemblyInfo.iOS.cs @@ -17,4 +17,4 @@ // The form "{Major}.{Minor}.*" will automatically update the build and revision, // and "{Major}.{Minor}.{Build}.*" will update just the revision. -[assembly: AssemblyVersion ("19.0.0")] +[assembly: AssemblyVersion ("19.1.0")]