Configure verification objects
Learn how to verify your domains for App Links on Android and Universal Links on iOS
For HTTP/HTTPS deep links to work reliably, you need to verify that your app is the legitimate owner of the domain. This verification process is different for Android (App Links) and iOS (Universal Links).
This guide explains how to verify your domains for both platforms and integrate with Linkrunner.
Android App Links Verification
Android App Links allow your app to become the default handler for a specific website’s URLs. This requires proper verification of your domain ownership.
Step 1: Create the Digital Asset Links JSON File
Create a file named assetlinks.json
with the following content:
Replace:
your.package.name
with your actual Android package nameSHA-256:XX:XX:XX:...
with your app’s SHA-256 fingerprint
Step 2: Get Your App’s SHA-256 Fingerprint
To obtain your app’s SHA-256 fingerprint:
-
For debug builds, use:
-
For release builds, use your release keystore:
-
Look for the “SHA-256 Certificate fingerprint” line in the output
Android App Links Verification
Android App Links allow your app to become the default handler for a specific website’s URLs. This requires proper verification of your domain ownership.
Step 1: Create the Digital Asset Links JSON File
Create a file named assetlinks.json
with the following content:
Replace:
your.package.name
with your actual Android package nameSHA-256:XX:XX:XX:...
with your app’s SHA-256 fingerprint
Step 2: Get Your App’s SHA-256 Fingerprint
To obtain your app’s SHA-256 fingerprint:
-
For debug builds, use:
-
For release builds, use your release keystore:
-
Look for the “SHA-256 Certificate fingerprint” line in the output
iOS Universal Links Verification
Universal Links allow iOS to open your app when users tap links to your website.
Step 1: Create an Apple App Site Association File
Create a file named apple-app-site-association
(with no file extension) with the following content:
Replace:
TEAM_ID
with your Apple Developer Team IDBUNDLE_ID
with your app’s bundle identifier
The paths
array can be customized to include only specific paths that your app should handle. Use *
to handle all paths.
Step 2: Find Your Team ID and Bundle ID
- Your Team ID can be found in the Apple Developer Portal under Membership Details
- Your Bundle ID is in your Xcode project settings
Step 3: Host the JSON File
Upload the apple-app-site-association
file to your server at:
Make sure it’s accessible via HTTPS and has the correct Content-Type header (application/json
).
Step 4: Configure Your App
In Xcode:
- Open your project settings
- Go to “Signing & Capabilities”
- Add the “Associated Domains” capability
- Add
applinks:your-domain.com
to the domains list
For more details, see the official Apple documentation.
Setting Up Verification with Linkrunner
Linkrunner provides a simplified way to manage your domain verification files through the project settings dashboard.
Step 1: Access Domain Verification in Linkrunner
- Log in to your Linkrunner dashboard
- Go to “Project settings” from the navigation menu
Step 2: Configure Your Verification Objects
-
Prepare your verification JSON objects:
- For iOS: Create the apple-app-site-association JSON content
- For Android: Create the assetlinks.json content
-
In the Domain Verification section:
- Paste your iOS JSON in the “iOS (Only JSON allowed)” text area
- Paste your Android JSON in the “Android (Only JSON allowed)” text area
Linkrunner will automatically host these files at:
- iOS:
https://your-domain.io/.well-known/apple-app-site-association
- Android:
https://your-domain.io/.well-known/assetlinks.json
-
Click the “Save” button to store your configuration
Step 3: Verify Your App Configuration
After configuring in Linkrunner, you need to:
- For iOS: Ensure your app has the Associated Domains capability with
applinks:your-domain.io
in Xcode - For Android: Verify your app’s intent filters are properly configured for App Links
Testing Deep Link Verification for Android
- Install the app on a device
- Open a link to your verified domain in a browser
- The app should open automatically without prompting
Alternatively, use adb
to test:
Troubleshooting for Android
-
App doesn’t open automatically:
- Ensure your
assetlinks.json
file is correctly formatted - Verify the SHA-256 fingerprint matches your app signing key
- Make sure the file is accessible via HTTPS
- Ensure your
-
Verification warnings in logcat:
- Look for “IntentFilterIntentSvc” messages in logcat for details on verification failures
Testing Deep Link Verification for Android
- Install the app on a device
- Open a link to your verified domain in a browser
- The app should open automatically without prompting
Alternatively, use adb
to test:
Troubleshooting for Android
-
App doesn’t open automatically:
- Ensure your
assetlinks.json
file is correctly formatted - Verify the SHA-256 fingerprint matches your app signing key
- Make sure the file is accessible via HTTPS
- Ensure your
-
Verification warnings in logcat:
- Look for “IntentFilterIntentSvc” messages in logcat for details on verification failures
Testing Deep Link Verification for iOS
- Install the app on a device
- Open Safari and navigate to your verified domain
- The app should open automatically
Alternatively, use the iOS Simulator:
Troubleshooting for iOS
-
App doesn’t open with Universal Links:
- Ensure your
apple-app-site-association
file is correctly formatted - Verify Team ID and Bundle ID are correct
- Make sure the file is accessible via HTTPS
- Check that the Associated Domains capability is enabled
- Ensure your
-
Debug Universal Links:
- Connect your device to a Mac
- Open Console.app and filter for “swcd” to see Universal Links logs