Verified Android App Links let an https link open your app directly instead of the browser. Android verifies the association with a Digital Asset Links file called assetlinks.json on your domain. Here's the exact setup — and an easier path.
The assetlinks.json format
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.yourcompany.app",
"sha256_cert_fingerprints": ["AB:CD:EF:…"]
}
}]
The sha256_cert_fingerprints is your app's signing certificate fingerprint. Get it from keytool -list -v -keystore your.keystore, or from Google Play Console → App integrity (if you use Play App Signing, use the fingerprint Google shows there).
Host it + add the intent filter
- Serve it at
https://yourdomain.com/.well-known/assetlinks.jsonover HTTPS as application/json. - Add an
autoVerifyintent filter to your launch Activity inAndroidManifest.xml:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" android:host="yourdomain.com" />
</intent-filter>
Test it
- Use Google's Statement List Tester / the Digital Asset Links API to confirm the file is valid.
- Reinstall the app so Android re-runs verification, then tap an
httpslink to your host.
The easier way
Getting the fingerprint, hosting the file and keeping the intent filter correct is where the time goes. lynkily Deep Links hosts your assetlinks.json for you — add your package name and SHA-256 once, connect a domain, and lynkily serves it with the right headers, along with app → store → web routing and deep-link analytics. It hosts your iOS apple-app-site-association the same way.
Background: Universal Links vs App Links and how to create a deep link.