🔗Universal Links
Associate your website domain with your app so that links open directly in your app instead of a browser.
What are Universal Links
Universal Links associate your website domain directly with your app - no third-party service required. When a user taps a link to your website, the device recognizes it as a deep link and opens your app instead of a browser, navigating them directly to the right page or content.
If the app is not installed on the device, the link opens normally in the browser, so your website always works as a fallback.
iOS
Prerequisites
Your iOS app is already published in the Natively Dashboard.
App Capabilities Configuration
Open your Apple Developer account and navigate to Certificates, IDs & Profiles > Identifiers.
Select your app's Bundle ID.
Scroll down the Capabilities list and enable Associated Domains.
Click Save and confirm.
apple-app-site-association
For Universal Links to work, your website must host a special verification file called the Apple App Site Association (AASA) file. This file tells iOS that your website and app are associated, allowing links to your domain to open in your app instead of a browser.
Download AASA template
The webcredentials section is required if you are using Social Auth in your app. Without it, OAuth authentication will not work correctly on iOS.
Replace TEAM_ID with your Apple Team ID and BUNDLE_ID with your iOS app's Bundle ID.


On iOS 14 and later, Apple's CDN retrieves and caches the AASA file. When your app is installed, devices immediately download the file from the CDN. Devices check for updates approximately once per week after the app is installed. To download a newer version of the AASA file, reinstall the app. There is no direct CDN invalidation option.
It is up to third-party web browsers to enable Universal Links functionality. Universal Links may not be enabled in every web browser. Safari implements all of the functionality described in this page. For information about other browsers, check with the browser's vendor.
Android
Prerequisites
Your Android app is already published in the Natively Dashboard.
Your app is uploaded to the Google Play Console - required to access the Upload key SHA-256 certificate fingerprints.
assetlinks.json
For Android App Links to work, your website must host a Digital Asset Links file. This file tells Android that your website and app are associated, allowing links to your domain to open in your app instead of a browser.
Download assetlinks.json template
Replace BUNDLE_ID with your app's Bundle ID. As for the SHA256 fingerprints:
APP_SIGNING_KEY_SHA256— your App signing key SHA-256 certificate fingerprint.UPLOAD_KEY_SHA256— your Upload key SHA-256 certificate fingerprint.
Both can be found in your Google Play Console app page under Protected With Play > Play Store protection > Protect app signing key > Manage Play App Signing.


Website setup
Before proceeding, make sure you have already created and configured your verification files for iOS and Android.
Once your files are ready, follow the instructions below for your platform to host them on your website.
To make Universal Links work, your website needs to host two special files at specific locations that Apple and Google can access to verify your domain.
Upload the relevant file(s) for your platform::
apple-app-site-association- required for iOS, must be accessible athttps://yourdomain.com/.well-known/apple-app-site-associationassetlinks.json- required for Android, must be accessible athttps://yourdomain.com/.well-known/assetlinks.json
Files must be publicly accessible without any redirects.
Files must be served with the content type application/json. If the content type is incorrect, Apple and Google might not be able to verify your domain even if the files are accessible.
If you are unsure how to host files on your website, check the other tabs for platform-specific instructions.
Open your Bubble project.
Go to the Settings > SEO / metatags.
Scroll down and find the Hosting files in the root directory section.
For iOS: set the name to
.well-known/apple-app-site-associationand upload your AASA file.For Android: set the name to
.well-known/assetlinks.jsonand upload your assetlinks.json file.Publish the changes.

Lovable, Replit, and Base44 all use React/Vite under the hood, which copies everything in the public/ folder to the build output root as-is. This means you can host the verification files simply by asking your AI assistant to create them at the correct paths.
For the iOS app, copy the line below and paste it into your AI agent:
For the Android app, copy the line below and paste it into your AI agent:
Once published, the files will be automatically accessible on your domain.
How to verify?
Once your verification files are hosted, confirm everything is configured correctly before proceeding to the Natively Dashboard Setup.
iOS
Use the Branch AASA Validator to verify your apple-app-site-association file. Enter the following details to confirm the file is accessible, correctly served, and valid:
Domain - your website domain.
Android
Use the Google Digital Asset Links tool to verify your assetlinks.json file. Enter the following details to confirm the file is correctly hosted and your app is properly associated with your domain:
Hosting site domain - your website domain.
App package name - your app's Bundle ID.
App package fingerprint (SHA256) - either your app signing key or upload key SHA256 fingerprint from the Google Play Console.
Checking via Android device settings
You can also verify directly on your Android device. Go to Settings > Apps > [your app] > Open by default (also called Supported web addresses on some devices):
If the toggles are enabled or the link is present but there are no toggles (behavior depends on Android vendor) - Android Universal Links are correctly configured.
If the toggles are present but disabled - the
assetlinks.jsonis incorrect or couldn't be verified by Android. The app is configured for deep links, but Android couldn't confirm domain ownership.
Natively Dashboard Setup
Open your Natively app dashboard and navigate to Features > Deep Links > Universal Links.
Toggle the feature to Enabled.
Enter your Associated Domain - your website domain (e.g.
yourdomain.com).Click Save.
Rebuild your app(s).
You must rebuild your app for these changes to take effect.
Troubleshooting
Last updated