Skip to main content
Some features, like device registration, require universal links (iOS) or App Links (Android) instead of custom URL schemes. Unlike deep links, universal links use your domain to open your app, which provides better security because they require you to prove ownership of the domain.

1. Configure your domain

Host an apple-app-site-association (AASA) file at https://yourdomain.com/.well-known/apple-app-site-association:
{
  "applinks": {
    "details": [
      {
        "appIDs": [
          "<TEAM_ID>.<BUNDLE_ID>"
        ],
        "components": [
          {
            "/": "/",
            "comment": "Opens the app"
          }
        ]
      }
    ]
  }
}
Replace <TEAM_ID> with your Apple Team ID and <BUNDLE_ID> with your app’s bundle identifier (e.g., com.mycompany.myapp). The file must be served over HTTPS with Content-Type: application/json and without any redirects. For full details, see Apple’s Universal Links documentation.

2. Configure your app

Add the associated domain to your app.json or app.config.js:
{
  "expo": {
    "ios": {
      "bundleIdentifier": "com.mycompany.myapp",
      "associatedDomains": ["applinks:yourdomain.com"]
    }
  }
}

1. Configure your domain

Host a Digital Asset Links file at https://yourdomain.com/.well-known/assetlinks.json:
[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.mycompany.myapp",
      "sha256_cert_fingerprints": ["<SHA256_FINGERPRINT>"]
    }
  }
]
Replace <SHA256_FINGERPRINT> with your app’s signing certificate fingerprint. For full details, see Android’s App Links documentation.

2. Configure your app

Add the intent filter to your app.json or app.config.js:
{
  "expo": {
    "android": {
      "package": "com.mycompany.myapp",
      "intentFilters": [
        {
          "action": "VIEW",
          "autoVerify": true,
          "data": [
            {
              "scheme": "https",
              "host": "yourdomain.com"
            }
          ],
          "category": ["BROWSABLE", "DEFAULT"]
        }
      ]
    }
  }
}

Register with Dynamic

After configuring your domain and app, add your universal link URL in the Dynamic Dashboard under Account Security > Mobile Deeplink URL.

Next steps