Deeplinkly
Free · No login

Deep Link Debugger

Paste a domain to validate its Universal Links and Android App Links. We fetch your apple-app-site-association and assetlinks.json, show the parsed JSON, and flag the errors that quietly break deep links.

Try:

What this checks

Universal-link hell is almost always one of a handful of small mistakes. Here's everything the debugger validates for you.

iOS · apple-app-site-association

  • Served at /.well-known/ over HTTPS with a 200
  • No redirects (iOS won't follow them)
  • Content-Type is application/json
  • Valid JSON, no BOM, under the 128 KB limit
  • applinks.details with appIDs / paths / components
  • App ID has a valid 10-character Team ID prefix

Android · assetlinks.json

  • Served at /.well-known/ over HTTPS with a 200
  • No redirects on the verification request
  • Content-Type is application/json
  • Valid JSON array of statements
  • delegate_permission/common.handle_all_urls relation
  • package_name + well-formed SHA-256 fingerprints

Universal Link & App Link FAQ

Why aren't my Universal Links opening the app?+

The most common causes are: the apple-app-site-association file isn't served at /.well-known/ over HTTPS with a 200 response, it's returned through a redirect (iOS won't follow it), it's served with the wrong Content-Type, the JSON is invalid, or the App ID is missing the 10-character Team ID prefix. This tool checks all of these.

Where should the apple-app-site-association file live?+

At https://yourdomain.com/.well-known/apple-app-site-association, served over HTTPS with a valid certificate, no redirect, and no file extension. Since iOS 9.3 the .well-known path is required.

Does the AASA file need to be application/json?+

Apple recommends serving it as application/json. Modern iOS is more lenient, but a text/html Content-Type (often an HTML error page in disguise) is a frequent cause of silent failures, so we flag it.

What breaks Android App Links most often?+

A missing or malformed SHA-256 certificate fingerprint, the wrong package_name, missing the delegate_permission/common.handle_all_urls relation, a redirect on the assetlinks.json request, or the file not being valid JSON. If you use Play App Signing, copy the fingerprint from the Play Console — not your local keystore.

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

It's completely free and requires no login. Paste a domain and get results instantly.

More free tools: AASA & assetlinks.json generator · Firebase Dynamic Links migration checker · UTM builder
Learn more: What is deep linking · Deferred deep linking · Deep linking for mobile apps