Deeplinkly
Free · No login · Runs in your browser

AASA & assetlinks.json Generator

Build a valid apple-app-site-association and assetlinks.json for iOS Universal Links and Android App Links. Fill in your app details — copy or download the files instantly.

iOS · apple-app-site-association

Which URL paths should open the app. Use * for all, /products/* for a section. Mark a rule Exclude to keep a path in the browser.

Android · assetlinks.json

Using Play App Signing? Copy the fingerprint from the Play Console, not your local keystore. Add debug + release for testing.

apple-app-site-association

Host at /.well-known/ — no file extension

Example output — enter your details above to generate your file
{
  "applinks": {
    "details": [
      {
        "appIDs": [
          "TEAMID.com.yourcompany.app"
        ],
        "components": [
          {
            "/": "*"
          }
        ]
      }
    ]
  }
}

assetlinks.json

Host at /.well-known/assetlinks.json

Example output — enter your details above to generate your file
[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.yourcompany.app",
      "sha256_cert_fingerprints": [
        "AA:BB:CC:...:FF"
      ]
    }
  }
]

How to generate your AASA and assetlinks.json files

Setting up Universal Links and Android App Links takes three steps. This tool handles the first one for you.

  1. 1

    Enter your app details

    Add your iOS Team ID and bundle ID, your Android package name and SHA-256 fingerprints, and the URL paths that should open your app.

  2. 2

    Host under /.well-known/

    Copy or download both files and serve them from the /.well-known/ directory of your HTTPS domain — a 200 response, no redirects.

  3. 3

    Verify and ship

    Validate the live files with the Deep Link Debugger, add the Associated Domains entitlement (iOS) and autoVerify intent filter (Android), then release.

Where to host these files

Both files live under /.well-known/ at the root of your HTTPS domain. Get these details right or the links silently fall back to the browser.

iOS · apple-app-site-association

https://yourdomain.com/.well-known/apple-app-site-association
  • No file extension (not .json)
  • Served over HTTPS with a valid cert, 200 response
  • No redirects — iOS won't follow them
  • Content-Type: application/json
  • Add the Associated Domains entitlement: applinks:yourdomain.com

Android · assetlinks.json

https://yourdomain.com/.well-known/assetlinks.json
  • Served over HTTPS, 200 response, no redirects
  • Content-Type: application/json
  • Add an intent-filter with autoVerify="true" in your manifest
  • Use the Play App Signing fingerprint if enabled
  • Run adb to re-trigger verification while testing

Files hosted? Confirm they're served correctly with the free Deep Link Debugger — it flags redirects, wrong content-type, missing Team IDs and bad fingerprints.

Don't want to host and maintain these files yourself?

Deeplinkly provisions your apple-app-site-association and assetlinks.json automatically when you add a branded domain — plus deferred deep linking, install attribution, and campaign analytics. Free plan, no credit card.

AASA & assetlinks.json FAQ

What is the apple-app-site-association (AASA) file?+

It's a JSON file you host at https://yourdomain.com/.well-known/apple-app-site-association (no file extension). It tells iOS which of your app's URLs should open the app directly via Universal Links instead of Safari. This generator produces the modern iOS 13+ format using appIDs and components.

What is assetlinks.json?+

assetlinks.json (Digital Asset Links) is the Android equivalent, hosted at https://yourdomain.com/.well-known/assetlinks.json. It links your website to your Android app using your package name and one or more SHA-256 certificate fingerprints, so verified App Links open your app directly.

Where do I put these files?+

Both go under the /.well-known/ directory at the root of your HTTPS domain. Serve them over HTTPS with a valid certificate, a 200 response, no redirects, and ideally an application/json content type. The AASA file must have no file extension.

Where do I find my Team ID and SHA-256 fingerprint?+

Your 10-character Team ID is in the Apple Developer portal (Membership details) — the App ID is Team ID + bundle ID, e.g. ABCDE12345.com.company.app. Your Android SHA-256 fingerprint comes from your signing key: run keytool -list -v -keystore, or if you use Play App Signing, copy it from the Play Console under App integrity.

Can I add multiple apps or paths?+

Yes. Add multiple iOS apps (they share the same path rules in one details entry), multiple Android apps (each becomes its own statement), and as many path rules as you need. Mark a path Exclude to keep it in the browser instead of opening the app.

My apple-app-site-association file isn't working — what's wrong?+

The usual culprits are: the file is served with a redirect (iOS won't follow it), the wrong Content-Type, invalid JSON, a missing 10-character Team ID prefix on the App ID, or it isn't reachable at /.well-known/ over HTTPS with a 200. Generate a clean file here, host it, then run it through our Deep Link Debugger to confirm it's served correctly.

What's the difference between the AASA components and paths format?+

The legacy format used a flat paths array of strings. The modern iOS 13+ format — which this generator produces — uses appIDs plus a components array, where each entry can match on path, query and fragment, and supports an exclude flag. The modern format is more expressive and is what Apple recommends today.

Is this free? Do I need to sign up?+

Completely free, no login. Everything is generated in your browser — your Team IDs, package names and fingerprints never leave your device.

Related: Deep Link Debugger · Firebase Dynamic Links migration checker · UTM builder · What is deep linking · Firebase Dynamic Links alternative