[Xcode 27] SceneDelegate Migration Required — Additional Setup Needed for Airbridge Deep Links
[Xcode 27] SceneDelegate Migration Required — Additional Setup Needed for Airbridge Deep Links
This troubleshooting guide is for customers who need to migrate an existing AppDelegate-based app to the
SceneDelegate (UIScene lifecycle).Problem
- When you run an app built with Xcode 27, the screen appears blank (white) or the app does not render properly.
- Airbridge deep link events are not collected even when the app is opened through a scheme deep link or Universal Link.
- The app does not work even though the code was added to
AppDelegateas shown in the developer guide example Deep Linking > When using AppDelegate.
Cause
Apple is moving the app lifecycle from theUIApplicationDelegate-only AppDelegate model to the UIScene-based SceneDelegate model, and adopting the Scene lifecycle has effectively become required in the latest Xcode and iOS environments.When an app adopts the Scene lifecycle through UIApplicationSceneManifest, the following AppDelegate deep link callbacks are no longer called.Solution
1. Add Scene Manifest to Info.plist
Add the followingUIApplicationSceneManifest to Info.plist.Set the UISceneDelegateClassName value to match the language/module you use.- Objective-C:
SceneDelegate - Swift:
$(PRODUCT_MODULE_NAME).SceneDelegate
2. Create SceneDelegate and move the deep link collection code to SceneDelegate
- Swift
- Objective-C
3. Clean up AppDelegate
- Keep the SDK initialization code (Objective-C:
[AirBridge getInstance:appName:withLaunchOptions:], Swift:AirBridge.getInstance(_:appName:withLaunchOptions:)) inapplication:didFinishLaunchingWithOptions:as is. application:openURL:options:andapplication:continueUserActivity:restorationHandler:, which were added for deep link collection, are not called in the Scene lifecycle. After moving them toSceneDelegate, remove them fromAppDelegate.
Webcredentials
Webcredentials
Users may see the domain of passwords stored with the Password AutoFill feature as Example: 9JA89QQLNQ.com.apple.wwdc
airbridge.io or abr.ge. If you want to change the domain to store the password, follow the steps below.- Host the JSON below at
https://example.com/.well-known/apple-app-site-association. Your prepared domain should be entered instead ofexample.com.
- Navigate to [Xcode]>[Project File]>[Signing & Capabilities]>[Associated Domains].
- Click
+and addwebcredentials:example.com.
Bitcode compile error
Bitcode compile error
Airbridge iOS SDK does not support Bitcode from version 1.28.0. Note that Bitcode has been deprecated from Xcode 14. If you use Bitcode in an App project, you may encounter the following compile errors.To solve this issue, you need to add the following to the Podfile.Or you may set the
Text
Podfile
ENABLE_BITCODE to No.Note that Bitcode has been deprecated, and the App Store automatically deletes the Bitcode when .ipa files using Bitcode are submitted.
Build issues in Xcode 13
Build issues in Xcode 13
The Airbridge iOS SDK does not support Xcode 13 and iOS 9 or 10 starting from version 1.28.0.If you need to use Xcode 13, use Airbridge iOS SDK versions 1.27.0 or earlier.
Crashes occurring on iOS versions earlier than 14.2 when installing the SDK using Tuist fetch and SPM
Crashes occurring on iOS versions earlier than 14.2 when installing the SDK using Tuist fetch and SPM
The Airbridge iOS SDK utilizes several built-in iOS frameworks. Among them, AdServices requires the iOS version 14.2 or later. However, the Swift Package Manager has a feature that automatically links a framework as
Optional if its minimum OS version is higher than the Target’s minimum OS version. In contrast, when using Tuist fetch—which only retrieves metadata instead of utilizing Swift Package Manager—the framework is linked to Required, leading to this issue. You can find the relevant Tuist code here.In this case, you can resolve the problem by installing the SDK using the method “Xcode Native Package Manager Support” provided by Tuist, or you can simply download AirBridge.xcframework and add it to the SDK.