Troubleshooting - Expo SDK

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.

1. Prepare the domain that will store the password.

2. Host the JSON below at https://YOUR_DOMAIN/.well-known/apple-app-site-association with Content-Type: application/json. Your prepared domain should be entered instead of YOUR_DOMAIN.

You can find the App ID Prefix and Bundle ID in the [Identifiers]>[YOUR_APP] menu of the Apple Developer Portal.

12345
{
    "webcredentials": {
        "apps": ["YOUR_APP_ID_PREFIX.YOUR_BUNDLE_ID"]
    }
}

3. Navigate to [YOUR_PROJECT]>[Signing & Capabilities] in Xcode.

4. Click + Capability to add Associated Domains. Enter webcredentials:YOUR_DOMAIN in Associated Domains.

Problem

Upon uploading the app to the App Store, Xcode displays a warning message that a dSYM for the Airbridge framework was not included.

Cause

The Airbridge iOS SDK does not support dSYM.

Solution

The dSYM will be supported in the coming update. You may ignore this warning.

Problem

The expo-route deosn't work after installing the SDK for users who have been using it before the SDK installation.

Cause

When the app is launched via the Airbridge tracking link, Airbridge converts the deep link to a scheme deep link before routing it. However, due to the expo-router, the routing process may be duplicated, or the redirection may be processed incorrectly.

Therefore, the Airbridge Expo SDK has been designed to route the Deeplink.

Solution

Make sure to be routed within the Airbridge.setOnDeeplinkReceived as in the following code.

123456789
import { Airbridge } from 'airbridge-react-native-sdk';
import * as Router from 'expo-router';

const router = Router.useRouter();

Airbridge.setOnDeeplinkReceived((result) => {
  // route deeplink
  router.push(...);
});