Associated Domains Validator
iOS Universal Links and Android App Links rely on `apple-app-site-association` and `digital asset links` JSON served over HTTPS with correct content types, redirects, and caching. Compare origin responses with Appleβs CDN view to catch policy mismatches before users fall back to Safari.
How to use
- Enter every domain you declare under Associated Domains or Android intent filters, including staging and regional hosts.
- Review HTTP status, JSON shape, app identifiers, path wildcards, team IDs, and SHA-256 signing fingerprints side by side with vendor guidance.
- Fix headers, redeploy, then retest with an on-device tap after caches propagate; update entitlements when bundle IDs or fingerprints rotate.
FAQ
- Why does iOS still launch Safari for my links?
- Typical causes are missing/invalid AASA at `/.well-known/` or root, wrong `Content-Type`, redirect loops, oversized payloads, or bundle identifiers that do not match the entitlement. Compare Apple CDN snapshots to origin to detect stale caches.
- Must Android and Apple files list the same paths?
- Platforms differ: iOS needs `applinks` entries with app IDs and path rules; Android needs `package_name` plus verified signing certs. Keep both aligned with your routing matrix but follow each schema separately.
- How long do AASA/CDN caches linger?
- Apple caches aggressively; delays are common after fixes. Track response headers, bump app versions for entitlements, and retest periodically rather than assuming instant invalidation.
Associated Domains Diagnostics Engine
Blazing fast, concurrent audit of iOS Universal Links & Android App Links, bypassing CORS to sync and diff directly with official Apple CDN cached endpoints.
π Associated Domains Ops Wiki & Tech Guides
// An all-in-one guide to iOS Universal Links and Android App Links for dev & devops.
Universal Links allow website URLs to seamlessly launch your app on iOS without passing through Safari.
Core Workflow:
- Entitlements Config: Declare domain as
applinks:yourdomain.comin Xcode Associated Domains. - Silent Fetching: Upon app install, iOS queries Apple CDN (
app-site-association.cdn-apple.com) to download your AASA file. - AppID Matching: iOS validates the AASA schema. If matched, deep-linking rules are registered on the device.
- Instant Launching: Clicking matching URLs instantly triggers your local app.
App Links on Android auto-verify domain ownership, launching target intents without popups.
Core Workflow:
- Manifest Declaration: Set
android:autoVerify="true"inside your intent-filter in AndroidManifest.xml. - Auto-verification: On app install, Package Manager issues HTTPS GET to
/.well-known/assetlinks.json. - Affinity Registered: App is configured as the default handler once package_name and SHA-256 match perfectly.
Operating systems and Apple bots strictly prohibit HTTP 301/302 redirections along the retrieval paths, including naked HTTP to HTTPS or trailing slash additions.
AASA response headers must present application/json or application/pkcs7-mime. Android must be application/json. text/plain will be rejected.
AASA files must comply strictly with JSON specs. Trailing commas, full-width quotes, and comments will cause parsing crashes, neutralizing Universal Links.
Apple CDN maintains strict cache-lifespans up to 24 hours. Developers can toggle Developer Mode on target iOS devices to bypass CDN during staging.
If your origin features expired, self-signed, or un-trusted certificates, Apple/Google nodes will block connections, causing Universal Links to fail.