iOS
The domain of saved passwords appears as airbridge.io or abr.ge
The domain of saved passwords appears as airbridge.io or abr.ge
Problem
Users may see the domain of passwords stored with the Password AutoFill feature as airbridge.io or abr.ge.Cause
After setting up deep links for the Airbridge SDK, if you utilize the Password AutoFill feature, the domain is saved as the applinks domain of the Airbridge deep link, which is airbridge.io or abr.ge.Solution
The problem can be solved by setting up the webcredentials domain used in the Password AutoFill.- Prepare the domain that will store the password.
-
Host the JSON below at
https://YOUR_DOMAIN/.well-known/apple-app-site-associationwithContent-Type: application/json. Your prepared domain should be entered instead ofYOUR_DOMAIN.
- Navigate to [YOUR_PROJECT]>[Signing & Capabilities] in Xcode.
-
Click + Capability to add Associated Domains. Enter
webcredentials:YOUR_DOMAINin Associated Domains.
Bitcode Compile Error
Bitcode Compile Error
An error like below may occur when creating iOS builds with Cordova-Ionic SDK v2.0.1+.Since Cordova-Ionic SDK v2.0.1+ uses Airbridge iOS SDK v1.28.0+, Bitcode is no longer supported. Please refer to the Bitcode compile error guide for more details.
[Xcode 27] SceneDelegate Migration Required — Additional Setup Needed for Airbridge Deep Links
[Xcode 27] SceneDelegate Migration Required — Additional Setup Needed for Airbridge Deep Links
AttentionThis troubleshooting guide is for customers who need to migrate an existing AppDelegate-based app to UIScene(SceneDelegate) 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 Initialize SDK and Collect deep link events in your app developer guide examples.
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 callbacks are no longer called.In cordova-ios 7.x and earlier, CDVAppDelegate creates the window and MainViewController in application:didFinishLaunchingWithOptions:. In the Scene lifecycle the window is owned by the SceneDelegate, so that window is never displayed and the screen stays blank.
Solution
The required work depends on your cordova-ios platform version. Check the version withcordova platform ls, then select the matching tab in each step below.AttentionCDVSceneDelegate in cordova-ios 8.0.0 / 8.0.1 does not implement scene:continueUserActivity:, so applying the code below causes the app to terminate when it is opened through a Universal Link. Update to cordova-ios 8.1.0 or later before applying this guide.
1. Add Scene Manifest to Info.plist
- cordova-ios 8.1.0 or later
- cordova-ios 7.x or earlier
This is already included in platforms/ios/App/App-Info.plist. Just confirm that no value is missing. UISceneStoryboardFile must be set to Main; without it the screen stays blank.
2. Create SceneDelegate and move the deep link collection code to SceneDelegate
The code below follows the default template language of each cordova-ios version: Swift for 8.1.0 or later, Objective-C for 7.x or earlier. If you implement it in the other language, also apply the following.- cordova-ios 8.1.0 or later
- cordova-ios 7.x or earlier
Implementing cordova-ios 8.1.0 or later in Objective-C: delete the provided App/SceneDelegate.swift and change UISceneDelegateClassName in App-Info.plist to SceneDelegate. #import “App-Swift.h” is required to call AirbridgeCordova, and do not import AppDelegate.h because it raises a build warning.Modify platforms/ios/App/SceneDelegate.swift as follows.
3. Clean up AppDelegate
-
Leave the SDK initialization code (
initializeSDK) inapplication:didFinishLaunchingWithOptions:as is. -
The
application:openURL:options:andapplication:continueUserActivity:restorationHandler:methods you wrote to collect deep links are not called in the Scene lifecycle, so after moving them toSceneDelegate, delete them fromAppDelegate. -
On cordova-ios 7.x or earlier, delete
self.viewController = [[MainViewController alloc] init];andreturn [super application:application didFinishLaunchingWithOptions:launchOptions];, and returnYESinstead. The defaultCDVAppDelegateimplementation creates a newwindowandCDVViewController, so leaving it in place creates a second Cordova web view that is never displayed.
Android
A coroutine dependency error occurs during the build process
A coroutine dependency error occurs during the build process
Issue
A coroutine dependency error occurs during the build process with the following message.Text
Cause
If the kotlinx-coroutines-core library version is 1.3.5 or later, the kotlin-stdlib library version must be at a certain level or later.Solution
Check whether the kotlin-stdlib library version is v.1.3.70 or later with thegradlew dependencies command. If the version is earlier than v.1.3.70, you need to update it.Deeplink Opens generated by push notifications using the Braze SDK are not collected
Deeplink Opens generated by push notifications using the Braze SDK are not collected
Issue
Deeplink Open events that occur through the push notifications generated by the Braze SDK are not collected by Airbridge. Instead, the App Open event is collected.Cause
The Airbridge SDK uses thedataString in the action and intent of the Activity to distinguish between Deeplink Open events and App Open events.When a user opens the app through a push notification using the Braze SDK, the app goes through NotificationTrampolineActivity. This activity handles push notifications, but the dataString is not included in its action and intent, preventing the SDK from determining if it’s a Deeplink Open event or an App Open event.Solution
Add the following code to theandroid/app/src/main/java/.../MainApplication.kt file.The "Manifest merger failed" error occurs during the build process
The "Manifest merger failed" error occurs during the build process
Issue
The “Manifest merger failed” error occurs during the build process.Cause
The Airbridge SDK’sAndroidManifest.xml includes rules to opt out of backing up the Shared Preferences data. The purpose of this rule is to avoid retaining the same Airbridge settings during the reinstallation of the app so that new installs or reinstalls can be detected accurately.Merging Airbridge SDK backup rules with your app backup rules can cause conflicts.Solution
Below are the opt-out rules defined in the Airbridge SDK.Fix conflict with fullBackupContent=“string”
Addingandroid:fullBackupContent="string" to the AndroidManifest.xml file may cause an error like the following.Build Output
- add
xmlns:tools="http://schemas.android.com/tools"to the<manifest>tag - add
tools:replace="android:fullBackupContent"to the<application>tag
AndroidManifest.xml file.Fix conflict with dataExtractionRules=“string resource”
Addingandroid:dataExtractionRules="string resource" to the AndroidManifest.xml file may cause an error like the following.Build Output
- add
xmlns:tools="http://schemas.android.com/tools"to the<manifest>tag - add
tools:replace="android:dataExtractionRules"to the<application>tag
AndroidManifest.xml file.Fix conflict with allowBackup=“false”
Addingandroid:allowBackup="false" to the AndroidManifest.xml file may cause an error like the following.Build Output
- add
xmlns:tools="http://schemas.android.com/tools"to the<manifest>tag - add
tools:replace="android:allowBackup"to the<application>tag
AndroidManifest.xml file.If compileSdkVersion is lower than 31
Theandroid:dataExtractionRules has been added in API Level 31. Therefore, if the compileSdkVersion is lower than 31, an error like the following may occur.Build Output
- add
xmlns:tools="http://schemas.android.com/tools"to the<manifest>tag - add
tools:remove="android:dataExtractionRules"to the<application>tag
AndroidManifest.xml file.For more guidance, refer to the articles below.Resolve Airbridge SDK backup rules merge conflict issue
Resolve Airbridge SDK backup rules merge conflict issue
Issue
If an Airbridge SDK backup rule and a backup rule for a different third-party SDK (e.g., AppsFlyer SDK) overlap, you will see the build error below.Cause
Overlapping of the Airbridge SDK backup rules and third-party SDK backup rules can cause build errors.Solution
backup_rules.xml setup
- Create a
android/app/src/main/res/xmlfolder. - Within the new xml folder, create a file (e.g.
custom_backup_rules.xml). - Add the data backup rules defined in the Airbridge SDK as follows.
data_extraction_rules.xml setup
- Within the created xml folder, create a file (e.g.
custom_data_extraction_rules.xml). - Add the data backup rules defined in the Airbridge SDK as follows.
AndroidManifest.xml setup
GAID is collected as 00000000-0000-0000-0000-000000000000
GAID is collected as 00000000-0000-0000-0000-000000000000