Free Tool

AASA Validator

Check any domain's apple-app-site-association file and make sure your iOS Universal Links are set up correctly — hosting, format, structure, and app ID matching, in one click.

We fetch the file server-side (browsers can't cross-origin fetch another domain's AASA file) using our open-source engine. Nothing is stored.

What is an AASA file?

The apple-app-site-association (AASA) file is a small JSON file you host on your domain. It tells iOS which app is allowed to open which URLs — the foundation of Universal Links. When a user taps a link to your site, iOS reads this file to decide whether to open your app or fall back to Safari.

If the file is missing, unreachable, served with the wrong headers, or doesn't list your app, Universal Links silently break and links open the browser instead. The problems are notoriously hard to debug because iOS gives almost no feedback — which is exactly what this validator surfaces.

What this validator checks

Every check reports pass, warn, or fail so you know exactly what to fix.

Hosting

  • Domain is reachable and served over HTTPS
  • File found at /.well-known/apple-app-site-association
  • Returns HTTP 200 with no redirects

Format

  • Correct Content-Type and no file extension
  • Valid, parseable JSON with no byte-order mark
  • Reasonable file size

Structure

  • Recognized top-level keys (applinks, webcredentials, appclips)
  • Valid applinks shape — both modern and legacy formats
  • Well-formed app ID and component patterns

Identifier

  • Optionally confirm your app is listed
  • Match by App ID, or Team ID + Bundle ID
  • Catches the #1 Universal Links mistake: app not in the file

Common AASA errors and how to fix them

File is not served over HTTPS or returns a redirect

iOS fetches the AASA file over HTTPS and does not follow redirects. Serve it directly from https://yourdomain.com/.well-known/apple-app-site-association with a 200 response.

Wrong Content-Type or a .json extension

The file must have no file extension. Content-Type should be application/json (older guidance allowed application/pkcs7-mime for signed files, but modern apps use unsigned JSON).

Invalid JSON or a byte-order mark (BOM)

A stray comma, comment, or a UTF-8 BOM will cause iOS to silently reject the file. Validate the raw bytes are clean JSON.

Your app ID is not listed

The appID must be TeamID.BundleID (e.g. ABCDE12345.com.example.app). If it is missing or misspelled, Universal Links will never open your app. Use the advanced fields above to confirm a match.

Only in the legacy format

The old { "applinks": { "apps": [], "details": [{ "appID": ..., "paths": [...] }] } } shape still works, but the modern components-based format is recommended for newer iOS versions.

Frequently asked questions

What is an AASA file?

The apple-app-site-association (AASA) file is a JSON file hosted on your domain that tells iOS which app is allowed to open which URLs. It is the backbone of Universal Links — without a valid AASA file, tapping a link opens Safari instead of your app.

Where should the AASA file be hosted?

At https://yourdomain.com/.well-known/apple-app-site-association, served over HTTPS, with no redirects and no file extension.

Why do you need a server to validate it?

Browsers block cross-origin requests, so a page cannot fetch another domain’s AASA file directly. This tool fetches and validates the file server-side using the open-source @linkforty/aasa-core engine.

Is this AASA validator free?

Yes. It is a free tool built on LinkForty’s open-source AASA validation engine. No sign-up required.

Universal Links that actually work

LinkForty manages your deep links, Universal Links, and attribution — with a hosted AASA file, so links open the right app every time. Track what users do after the click, on web and mobile.

Start free