Generate an assetlinks.json file
Enter your package name and paste your signing fingerprints however you copied them. Lowercase, missing colons and SHA-1 mix-ups are caught before Android ever sees the file.
Free. No account, no email.
The applicationId in app/build.gradle. Or paste the app's Google Play address.
One per line, in any format: with or without colons, any case. Add the Play app signing key, and your debug key if you test debug builds.
[
{
"relation": [
"delegate_permission/common.handle_all_urls"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": [
"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
]
}
}
]The package and fingerprint above are placeholders. Enter your own and they are replaced.
Where to find the fingerprint
If you publish through Google Play, Google re-signs your app, so the fingerprint that matters is Google's, not the one on your computer. In Play Console open your app, then Protected with Play → Play Store distribution → Go to Play app signing, and copy the SHA-256 line from the App signing key section.
For a debug build, or an app you sign yourself, ask your own keystore:
# Every variant of the project, debug and release
./gradlew signingReport
# One keystore
keytool -list -v -keystore my-release-key.jks -alias my-key-aliasWhere the file goes
- Serve it at
https://your-domain/.well-known/assetlinks.json, on the exact host your links use. - Answer with status 200 and
Content-Type: application/json, with no redirect. - In your manifest, give the activity an intent filter with
android:autoVerify="true"for that host. The setup snippets write it for you. - Install the app and run
adb shell pm get-app-links your.package. The host should sayverified.
What goes wrong most often
- The upload key instead of the app signing key. Play Console shows both. Links then verify in your debug build and fail for everyone who installs from the store.
- A SHA-1 fingerprint.
keytoolprints SHA-1 first. Android needs the SHA-256 line. - One host of several. Every host in the intent filter must serve the file, or verification fails for that host.
Once it is live, run the link checker on your domain. It reads the file the way Android does and asks Google's own verification service whether it can see your app.
DL2App hosts this file for you on every link domain, builds it from the apps you add, and checks on a schedule that Google can still verify it.
Try DL2App freeWhat people use next
All 15 tools →Link checker
Checks a domain's Apple and Android association files and shows what Instagram, TikTok and other apps receive from a link.
Open
AASA generator
Build a valid apple-app-site-association file for universal links from your Team ID, bundle ID and paths.
Open
App setup snippets
The entitlement, intent filter and link-handling code for your domain, for Xcode, Android, React Native, Flutter and Expo.
Open