Free Tool
4.9/5

Free Deep Link Tester

Validate iOS Universal Links and Android App Links for any domain. Check your AASA and assetlinks.json configuration in seconds.

We'll check /.well-known/apple-app-site-association and /.well-known/assetlinks.json

Need deep links without the setup hassle?

Flyn short links automatically deep link into 16+ apps including YouTube, Spotify, TikTok, Instagram, and more. Every click is counted free; Pro adds device and country breakdowns.

Try Flyn Free

How to Test Deep Links in 3 Steps

Step 1: Enter your domain, Deep Link Tester screenshot
1

Enter your domain

Type the domain you want to test, for example, spotify.com or yourdomain.com.

Step 2: Review the results, Deep Link Tester screenshot
2

Review the results

See validation results for both iOS Universal Links (AASA) and Android App Links (assetlinks.json) side by side.

Step 3: Debug and copy, Deep Link Tester screenshot
3

Debug and copy

View the raw JSON response, copy it for debugging, and verify your deep link configuration is correct.

What This Tool Checks

A comprehensive validation of your deep link configuration across both mobile platforms.

iOS Universal Links

Validates your apple-app-site-association file including app IDs, associated paths, and JSON structure.

Android App Links

Checks your assetlinks.json for package names, SHA256 fingerprints, and Digital Asset Links compliance.

Validation Checks

Verifies HTTPS, file existence, JSON format, Content-Type headers, and required fields in one scan.

Raw JSON Viewer

View and copy the raw JSON response from both configuration files with syntax formatting.

Instant Results

Get results in seconds. No sign-up, no API key, no limits on the number of domains you can test.

Detailed Diagnostics

Color-coded results show exactly what passed, what failed, and what needs attention with clear messages.

How Deep Links Work: AASA and AssetLinks Explained

Deep links allow mobile apps to claim ownership of specific web domains. When a user taps a link to your website on their mobile device, the operating system checks whether an installed app has registered to handle that domain. If it has, the link opens directly in the app instead of the browser.

For iOS, Apple uses the apple-app-site-association (AASA) file. Your server hosts this JSON file at /.well-known/apple-app-site-association, and it contains your app's Team ID, Bundle ID, and the URL paths the app handles. Apple's CDN fetches this file when a user installs or updates your app.

For Android, Google uses the assetlinks.json file at /.well-known/assetlinks.json. It contains Digital Asset Links statements that map your domain to your app's package name and signing certificate SHA256 fingerprint. Android verifies this file at install time to enable automatic link handling.

AASA example (iOS):

{ "applinks": { "details": [{ "appID": "ABCDE12345.com.example.app", "paths": ["/products/*", "/blog/*"] }] } }

assetlinks.json example (Android):

[{ "relation": [ "delegate_permission/common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": [ "AB:CD:EF:..." ] } }]

Deep Links + Short Links: Better Together

Flyn short links handle deep linking automatically for 16+ popular apps, no AASA or assetlinks.json configuration needed.

Auto deep linking

Flyn detects the destination app and deep links automatically on mobile. YouTube, Spotify, TikTok, Instagram, and more.

Web fallback

If the app isn't installed, users land on the web page. No dead ends, no broken experiences.

One link, all platforms

A single Flyn short link works on iOS, Android, and desktop, each gets the optimal experience.

Click analytics

Track every click in real time; Pro adds device, location, and referrer breakdowns to show exactly how your deep links perform.

Frequently Asked Questions

What are deep links?
Deep links are URLs that open a specific page or screen inside a mobile app instead of a web browser. For example, tapping a product link on your phone could open the product directly in the retailer's app rather than loading the mobile website. Deep links provide a seamless user experience by taking users directly to relevant in-app content. There are three types: traditional deep links (custom URI schemes like myapp://), iOS Universal Links, and Android App Links.
What is the apple-app-site-association (AASA) file?
The apple-app-site-association (AASA) file is a JSON file hosted at /.well-known/apple-app-site-association on your domain. It tells iOS which apps are authorized to handle links to your website. When a user taps a link to your domain, iOS checks this file to determine if an installed app should open instead of Safari. The file must be served over HTTPS with a valid SSL certificate, must return a 200 status code, and should have an application/json content type. Apple's CDN caches this file, so changes can take up to 24 hours to propagate.
What is the assetlinks.json file?
The assetlinks.json file is hosted at /.well-known/assetlinks.json on your domain and serves a similar purpose for Android. It contains Digital Asset Links statements that declare the relationship between your website and your Android app(s). Each statement specifies the app's package name and SHA256 certificate fingerprints, allowing Android to verify that the app is authorized to handle links to your domain. The file must be served over HTTPS, return valid JSON as an array, and be accessible without redirects.
What is the difference between Universal Links and App Links?
Universal Links are Apple's implementation for iOS (iOS 9+) and use the apple-app-site-association file. App Links are Google's implementation for Android (Android 6.0+) and use the assetlinks.json file. Both serve the same purpose, opening links in native apps instead of the browser, but they use different configuration files, formats, and verification processes. Universal Links use app IDs (TeamID.BundleID format) while App Links use package names and SHA256 certificate fingerprints. For cross-platform deep linking, you need to configure both files.
How do I set up iOS Universal Links?
To set up iOS Universal Links: (1) Create an apple-app-site-association JSON file with your app's Team ID and Bundle ID in the applinks.details array. (2) Host the file at https://yourdomain.com/.well-known/apple-app-site-association, it must be served over HTTPS without redirects. (3) In your Xcode project, add the Associated Domains entitlement with "applinks:yourdomain.com". (4) Implement the application(_:continue:restorationHandler:) method in your AppDelegate to handle incoming links. Apple's CDN fetches the AASA file when the app is installed or updated.
How do I set up Android App Links?
To set up Android App Links: (1) Create an assetlinks.json file with your app's package name and SHA256 signing certificate fingerprint. (2) Host the file at https://yourdomain.com/.well-known/assetlinks.json over HTTPS. (3) In your Android manifest, add intent filters with android:autoVerify="true" for the URLs you want to handle. (4) Implement deep link handling in your Activity. You can get your SHA256 fingerprint using: keytool -list -v -keystore your-keystore.jks. Android verifies the assetlinks.json file when the app is installed.
Why are my deep links not working?
Common reasons deep links fail: (1) The AASA or assetlinks.json file returns a non-200 status code or is behind a redirect. (2) The file is not served over HTTPS or the SSL certificate is invalid. (3) The JSON format is invalid or missing required fields like appID or package_name. (4) The Content-Type header is not application/json. (5) For iOS, the Associated Domains entitlement is missing or has a typo. (6) For Android, the SHA256 fingerprint doesn't match the signing certificate. (7) The app is not installed on the device. Use this tool to quickly identify which of these issues is affecting your setup.
Does this tool check if the app is actually installed?
No, this tool checks the server-side configuration only, specifically the AASA and assetlinks.json files that your web server hosts. It verifies that the files exist, are valid JSON, contain the required fields, and are properly served over HTTPS. It cannot check whether the app itself is correctly configured to handle deep links or whether the app is installed on any specific device. For a complete deep link setup, you need both correct server-side files (what this tool checks) and correct app-side implementation.
How often should I test my deep link configuration?
You should test your deep link configuration: (1) After any server or CDN configuration changes. (2) When deploying a new version of your app with different URL handling. (3) After changing SSL certificates. (4) When adding new paths or app IDs to your configuration. (5) Periodically (monthly) as a health check, since CDN or server updates can sometimes break well-known file serving. Apple caches AASA files on their CDN, so if you make changes, it can take up to 24 hours for them to take effect on devices.
Can Flyn short links support deep links?
Yes, Flyn supports deep linking for 16+ popular apps including YouTube, Spotify, TikTok, Instagram, X (Twitter), LinkedIn, Amazon, and more. When you create a short link with Flyn, it automatically detects the destination platform and configures deep linking so users are taken directly to the native app on mobile devices. You also get click analytics (Pro adds device, country, and referrer breakdowns), QR codes, and A/B testing, all with one branded short link. No manual AASA or assetlinks.json configuration needed.

If your links need different destinations per device, start with the best link shorteners with device-based routing and come back here to test the result.

Skip the setup. Let Flyn handle deep links.

Flyn automatically deep links into 16+ apps with branded short links, real-time analytics, QR codes, and A/B testing, all in one platform.