Check the files behind your Universal Links and App Links, then copy the commands to open the link on a device.
Each check shows pass, warning, or fail. A link passes when the AASA and assetlinks.json files on the domain are reachable with a 200 status and a JSON content type, parse as JSON and list your app, and on iOS the link path matches a rule in the AASA file. Every failure comes with a suggested fix.
Type the domain that hosts your files, a deep link URL on it, or both.
The tester fetches the AASA and assetlinks.json files from /.well-known/ on that domain.
Each check shows pass, warning, or fail, with a fix for anything that is not a pass.
Copy the adb or xcrun command, or scan the QR code, and open the link on a phone or simulator.
The deep link tester runs the basic iOS file checks and matches your link path against the rules. For a dedicated check of the file itself, use the AASA validator.
This tester runs the basic Android file checks and gives each failure a fix. For a dedicated check of the file itself, use the Android assetlinks validator.
On iOS, the AASA file lists your app ID and the paths or components the app opens. On Android, assetlinks.json lists the package name and the SHA-256 fingerprint of your signing certificate. The deep linking guide explains how both link types work.
Say you test the link https://go.example.com/p/42 and the AASA file at go.example.com contains this rule:
{
"applinks": {
"details": [
{
"appIDs": ["ABCDE12345.com.example.app"],
"components": [{ "/": "/p/*" }]
}
]
}
}The path /p/42 matches the rule /p/*, so the path check passes. A link to /about would fail with a fix that suggests adding a rule for that path. With a package in assetlinks.json, the Android command comes out as:
adb shell am start -W -a android.intent.action.VIEW -d "https://go.example.com/p/42" com.example.app
xcrun simctl openurl booted "https://go.example.com/p/42"A Universal Link or App Link opens the app when it is installed. For people who install first, see deferred deep linking.
Smler hosts the AASA and assetlinks files per domain, so you do not have to serve them from your own servers. Create a free account to set up deep links.
It requests /.well-known/apple-app-site-association and /.well-known/assetlinks.json on your domain. For each file it checks that the file is reachable, returns 200, sends a JSON content type, parses as JSON, and lists the app details. For iOS it also tests whether your link path matches.
The tester reports any redirect on the AASA URL as a failure, so the file should answer directly from /.well-known/apple-app-site-association. Remove http to https hops and apex to www hops for that path, then test again.
No. It reads the two hosted files on your domain and does not touch a phone. To test an installed build, copy the adb command for Android or the xcrun simctl command for the iOS Simulator and run it on your machine.
The domain is taken from the URL. The path in the URL is then compared with the paths or components in the AASA file. A path that is not listed, or is excluded, fails with a suggested fix.
Yes. Enter a public domain or an http or https link and run the test. There is no account and no fee. Private and loopback addresses are blocked.