Issue:
Description
The latest Airship.Net package (v20.2.0) is incompatible with the current iOS bindings available for .NET 10 with Xcode 26.2, causing linking errors when building iOS apps.
Environment
- Airship.Net Version: 20.2.0
- .NET Version: .NET 10.0
- iOS SDK Version: 26.2 (iOS 18.2)
- Xcode Version: 26.2
- Available iOS Bindings:
Airship.Net.iOS: 17.10.1.2 (latest available)
Airship.Net.iOS.MessageCenter: 17.10.1.2 (latest available)
Airship.Net.iOS.PreferenceCenter: 17.10.1.2 (latest available)
- Platform: macOS
- IDE: JetBrains Rider 2025.3.1
Problem
When upgrading to Airship.Net v20.2.0, the build fails with undefined symbol errors for PreferenceCenter classes during the iOS linking phase:
Finished external tool execution #12 in 00:00:00.5456727 and with exit code 1.
0>Xamarin.Shared.Sdk.targets(1864,3): Error : clang++ exited with code 1:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_UAPreferenceCenter", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfig", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigAlert", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigAlertButton", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigChannelSubscription", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigCommonSection", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigContactSubscription", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigContactSubscriptionGroup", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigNotificationOptInCondition", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterConfigOptions", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceCenterViewControllerFactory", referenced from:
in registrar.o
"_OBJC_CLASS_$_UAPreferenceConfigAlertDisplay", referenced from:
in registrar.o
0>------- Finished building
Root Cause
Airship.Net v20.2.0 appears to require iOS bindings from the 19.x version family, but the latest available iOS bindings on NuGet are:
Airship.Net.iOS v17.10.1.2
Airship.Net.iOS.MessageCenter v17.10.1.2
Airship.Net.iOS.PreferenceCenter v17.10.1.2
This version mismatch causes the .NET registrar to generate references to Objective-C classes that don't exist in the v17.x bindings, resulting in linking failures.
Expected Behavior
Airship.Net v20.2.0 should either:
- Work with the currently available iOS bindings (v17.x), OR
- Have corresponding iOS bindings v19.x or v20.x published to NuGet
Actual Behavior
The build fails with undefined symbol errors because the managed wrapper expects native iOS bindings that aren't available.
Workaround
Currently forced to downgrade to Airship.Net v17.10.1 to match the available iOS bindings:
<PackageReference Include="Airship.Net" Version="17.10.1" />
<PackageReference Include="Airship.Net.iOS" Version="17.10.1.2" />
<PackageReference Include="Airship.Net.iOS.MessageCenter" Version="17.10.1.2" />
Reproduction Steps
- Create a new .NET MAUI project targeting
net10.0-ios
- Add NuGet packages:
<PackageReference Include="Airship.Net" Version="20.2.0" />
<PackageReference Include="Airship.Net.iOS" Version="17.10.1.2" />
<PackageReference Include="Airship.Net.iOS.MessageCenter" Version="17.10.1.2" />
- Build for iOS (Debug or Release)
- Observe linking errors for UAPreferenceCenter symbols
Questions
- Are iOS bindings v19.x or v20.x planned for release?
- If so, what is the expected timeline?
- Is v20.2.0 compatible with .NET 10 and the latest Xcode (26.2)?
- Should we expect PreferenceCenter to be included by default, or is there a way to exclude it if not needed?
Additional Context
- This issue affects all iOS builds (Debug, Release, and Production configurations)
- Android builds work fine with the current versions
- The issue persists even when using the dynamic registrar (
--registrar:dynamic)
- This blocks upgrading to the latest Airship.Net features for iOS apps
Package Versions
<!-- Current working configuration -->
<PackageReference Include="Airship.Net" Version="17.10.1" />
<PackageReference Include="Airship.Net.iOS" Version="17.10.1.2" />
<PackageReference Include="Airship.Net.iOS.MessageCenter" Version="17.10.1.2" />
<!-- Desired configuration (currently broken) -->
<PackageReference Include="Airship.Net" Version="20.2.0" />
<PackageReference Include="Airship.Net.iOS" Version="19.x.x or 20.x.x" /> <!-- Missing -->
<PackageReference Include="Airship.Net.iOS.MessageCenter" Version="19.x.x or 20.x.x" /> <!-- Missing -->
Request
Please either:
- Publish iOS bindings v19.x/v20.x that are compatible with .NET 10 and Xcode 26.2
- Update the dependency requirements for
Airship.Net v20.2.0 to work with existing v17.x iOS bindings
- Provide guidance on the correct version combinations for .NET 10 projects
Thank you for your support!
Issue:
Description
The latest
Airship.Netpackage (v20.2.0) is incompatible with the current iOS bindings available for .NET 10 with Xcode 26.2, causing linking errors when building iOS apps.Environment
Airship.Net.iOS: 17.10.1.2 (latest available)Airship.Net.iOS.MessageCenter: 17.10.1.2 (latest available)Airship.Net.iOS.PreferenceCenter: 17.10.1.2 (latest available)Problem
When upgrading to
Airship.Netv20.2.0, the build fails with undefined symbol errors for PreferenceCenter classes during the iOS linking phase:Root Cause
Airship.Netv20.2.0 appears to require iOS bindings from the 19.x version family, but the latest available iOS bindings on NuGet are:Airship.Net.iOSv17.10.1.2Airship.Net.iOS.MessageCenterv17.10.1.2Airship.Net.iOS.PreferenceCenterv17.10.1.2This version mismatch causes the .NET registrar to generate references to Objective-C classes that don't exist in the v17.x bindings, resulting in linking failures.
Expected Behavior
Airship.Netv20.2.0 should either:Actual Behavior
The build fails with undefined symbol errors because the managed wrapper expects native iOS bindings that aren't available.
Workaround
Currently forced to downgrade to
Airship.Netv17.10.1 to match the available iOS bindings:Reproduction Steps
net10.0-iosQuestions
Additional Context
--registrar:dynamic)Package Versions
Request
Please either:
Airship.Netv20.2.0 to work with existing v17.x iOS bindingsThank you for your support!