What the validator checks
- Location and transport: the file is at
/.well-known/on the exact host, over valid HTTPS, answers 200, and doesn't redirect. Neither platform follows redirects for these files. - Format: valid JSON, served as
application/json, not an HTML error page, and under 128 KB for Apple. - assetlinks.json: an array of statements with the
delegate_permission/common.handle_all_urlsrelation, anandroid_apptarget, a valid package name and SHA-256 fingerprints inAB:CD:…form. - apple-app-site-association: an
applinkssection with App IDs inTEAMID.bundle.idform andcomponents(or legacypaths), pluswebcredentialsandappclipswhen present. - What the platforms see: Google's Digital Asset Links API result for your domain, and whether Apple's CDN, which iPhones download from, already has the same file as your server.
Common reasons links open the browser instead of the app
- The file redirects, for example from
example.comtowww.example.com. Each host needs its own file without redirects. - The fingerprint is the upload key's, but Google Play re-signs the app with the app signing key. Copy it from Play Console › Test and release › App integrity.
- The iOS App ID uses the bundle ID without the Team ID prefix.
- Apple's CDN still serves an older copy; it usually refreshes within a day.
- The app's intent filters (
android:autoVerify="true") or Associated Domains entitlement (applinks:example.com) don't list the host.