App Links & assetlinks.json Helper

Create a valid assetlinks.json file for Android App Links domain verification, generate AndroidManifest.xml intent-filter XML with autoVerify="true", and get adb verification commands to test deep links instantly.

100% client-side · Private by design · No account required

1. App & Domain Details

Enter your Android package name, domain, and SHA-256 signing fingerprints.

2. Generated App Links Configuration

Copy your assetlinks.json file, AndroidManifest.xml intent-filter, and testing commands.

Host this file at: https://example.com/.well-known/assetlinks.json
[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.myapp",
      "sha256_cert_fingerprints": [
        "14:6D:E8:D4:79:33:65:21:40:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99"
      ]
    }
  }
]

What Are Android App Links?

Android App Links are HTTP/HTTPS URLs that take users directly to specific content inside your Android app without showing an app-chooser dialog. They provide a seamless, frictionless user experience for login links, email invites, referral codes, and product sharing.

How Verification Works

When a user installs your app on Android 6.0+, the Android system contacts the domains declared in your AndroidManifest.xml intent-filter with android:autoVerify="true". It fetches the assetlinks.json file at https://<domain>/.well-known/assetlinks.json and verifies that the SHA-256 fingerprint in the statement matches the APK signing key.

Hosting Checklist for Zero Verification Errors

  1. No Redirects: The URL must respond with HTTP 200 directly. 301 or 302 redirects will break Android verification.
  2. Correct Content-Type: Your server must return Content-Type: application/json.
  3. HTTPS Only: Must be served over a valid SSL/TLS certificate.
  4. Play App Signing Key: Use the SHA-256 fingerprint from Google Play Console (App Integrity > App signing), not your local upload key.

Frequently asked questions

What is the difference between Deep Links and Android App Links?
Deep links (custom schemes like myapp://) open the app if installed, but display an annoying disambiguation dialog asking the user to choose between the browser and your app. Android App Links (https:// URLs verified with assetlinks.json) open your app instantly and seamlessly without any dialog.
Where do I find the SHA-256 certificate fingerprint?
If you use Google Play App Signing (mandatory for new apps), go to Play Console > Setup > App Integrity > App signing tab, and copy the "App signing key certificate" SHA-256 fingerprint (NOT the upload key). If signing locally, run keytool -list -v -keystore your_keystore.jks.
Where must the assetlinks.json file be hosted?
It must be served at https://yourdomain.com/.well-known/assetlinks.json with an HTTP 200 status code, Content-Type: application/json, over HTTPS, and WITHOUT any 301 or 302 redirects. Google Play verifies this file before enabling App Links.
Can I include both Release and Debug fingerprints?
Yes! You can put multiple SHA-256 fingerprints in the cert_fingerprints_sha256 array. Including both your Play App Signing key and your local debug keystore fingerprint ensures App Links work seamlessly during local development and testing.
Why does Android App Link verification fail?
Common reasons include: (1) Hosting assetlinks.json behind a redirect (e.g. http to https or www to non-www), (2) Using the upload key SHA-256 instead of Play App Signing key, (3) Blocking /.well-known/ in robots.txt, or (4) Missing android:autoVerify="true" on the intent-filter in AndroidManifest.xml.

Related tools