Skip to content
DL2App

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.

assetlinks.json
[
  {
    "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:

Terminal
# Every variant of the project, debug and release
./gradlew signingReport

# One keystore
keytool -list -v -keystore my-release-key.jks -alias my-key-alias

Where the file goes

  1. Serve it at https://your-domain/.well-known/assetlinks.json, on the exact host your links use.
  2. Answer with status 200 and Content-Type: application/json, with no redirect.
  3. In your manifest, give the activity an intent filter with android:autoVerify="true" for that host. The setup snippets write it for you.
  4. Install the app and run adb shell pm get-app-links your.package. The host should say verified.

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. keytool prints 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 free

What people use next

All 15 tools →
assetlinks.json generator · DL2App