AASA and assetlinks.json validator

Check the public files behind your universal links and app links. Review response and configuration issues, then test the complete journey on a real device.

Enter the hostname only. The check fetches both files over HTTPS without following redirects, the way Apple and Google verify them.

Results for both files show up here. Using Linkrunner links? Your link domain already hosts both files, see how deep links are set up.

What each file needs

iOS and Android verify your domain the same way: a public JSON file, fetched directly, that names your app.

Requirementapple-app-site-associationassetlinks.json
Location/.well-known/apple-app-site-association/.well-known/assetlinks.json
TransportHTTPS with a valid certificate, HTTP 200, no redirectsHTTPS with a valid certificate, HTTP 200, no redirects
Content typeapplication/jsonapplication/json
FormatA JSON object with applinks.details, no file extensionA JSON array of statements
App identityappIDs as TEAM_ID.BUNDLE_IDpackage_name plus SHA-256 signing fingerprints
Which links open the appcomponents (iOS 13 and later) or pathsThe handle_all_urls relation plus intent filters in your manifest
SizeUnder 128 KB uncompressedKeep it small; only list apps that use the domain

Why links still open the browser

The usual causes, in the order we see them.

  1. 01

    The file sits behind a redirect, for example from the apex domain to www, or from HTTP to HTTPS. Serve it directly on the exact host your links use.

  2. 02

    A sign-in wall, bot protection or a CDN rule returns an HTML page instead of the file.

  3. 03

    The Apple team ID prefix is missing or wrong. It is the 10-character ID from your Apple Developer account, not the app's numeric ID.

  4. 04

    The Android fingerprint is from your debug or upload key. With Play App Signing, use the app signing key fingerprint from Play Console.

  5. 05

    The file is valid but the app is not configured: Associated Domains on iOS (applinks:your.domain) or an autoVerify intent filter on Android.

Skip the file maintenance

Linkrunner hosts the apple-app-site-association and assetlinks.json files for your link domains, including branded subdomains. Save your verification objects once in the dashboard and universal links, app links and deferred deep links work on every campaign link, with installs attributed to the network that drove them. See how Linkrunner deep links work, or tag web campaigns with the UTM builder.

Frequently asked questions

Universal links, app links and the files that verify them.

Deep links that open the app, every time

Linkrunner hosts association files for your branded domains and connects deep-link journeys to install attribution. Configure your app and test routing before launch.

Pair the AASA validator with every Linkrunner solution for attribution, deep links, paid ads and benchmark reporting. See all solutions.