Deep Link
Tester.
Test your app's URI schemes (myapp://path) and universal/app links (https://...) on a real device.
Paste a link, scan the QR code, or share it to your phone.
Note: anything you type becomes part of this page's URL so the test can be shared. Don't paste real auth tokens or credentials.
Quick examples (tap to load)
myapp://) may not auto-open from Android's default camera by design. If scanning shows only text, use Google Lens or a dedicated QR scanner app.
URL components
Android intent:// URL
A more robust form for Android. It survives in-app browsers better and can carry a browser_fallback_url. Add ;package=com.your.app; before ;end to pin it to your app.
What happens on each platform
iOS
Android
Test from a terminal.
Build the exact adb shell am start command for any deep link, with package targeting, intent extras, and ready-made recipes.
or browse the full toolbox →
No recent links yet.
Sister sites by the same author
Schema Preview
schemapreview.com →
Schema markup with the preview Google would actually show. Generate JSON-LD for 8 rich-result types with pixel-accurate SERP previews. No signup.
Cron Preview
cronpreview.com →
Build, validate, and preview cron expressions across Unix, AWS EventBridge, GitHub Actions, Vercel, Kubernetes, Quartz and Spring, with timezone-correct next-run previews.
How to use this tool
- On desktop: Paste your deep link into the field above and click Generate.
- Scan the QR code with your phone. The link opens directly on the device, which is the fastest way to test.
- Or copy / share the link to your device via your usual messenger or notes app, then tap it.
- Verify: on tap, iOS or Android should hand off to your app. If it doesn't, your URL scheme registration or universal-links association file probably needs work.
What are deep links?
A "deep link" is any link that takes a user directly to specific content inside a mobile app, rather than the app's home screen.
- Custom URL schemes (e.g.
twitter://): the older approach. Think of it as a private address for your app. Works when the app is installed. Falls flat if it isn't, and the browser shows a "cannot open" error. - Universal links (iOS) / App links (Android) (e.g.
https://...): the modern approach. A normal HTTPS URL. If the app is installed, the OS opens it. If it isn't, the website opens instead. Requires hosting an association file:apple-app-site-associationon iOS,assetlinks.jsonon Android.
This tool helps verify both kinds work end-to-end.
Why isn't my deep link opening?
- App not installed on the test device. For custom schemes the OS has nothing to hand off to.
- Scheme not registered in your app's manifest (
Info.pliston iOS,intent-filteron Android). - Universal links: association file missing or wrong. Check that
https://yourdomain.com/.well-known/apple-app-site-associationand/.well-known/assetlinks.jsonare reachable, served asapplication/json, and contain the right team and bundle IDs. - Tapped from inside another app: some in-app browsers (Instagram, Slack threads) intercept links and never hand them to the OS. Always test from a regular SMS, email, or the QR code below.
- iOS universal links remembered choice: if you ever tapped "Open in Safari" for that domain, iOS sticks with that choice. Long-press the link and pick "Open in [App]" to reset.
Test from the command line
For automated testing or simulator workflows:
Android · ADBadb shell am start -W -a android.intent.action.VIEW \ -d "your-link-here"
iOS Simulator · xcrun
xcrun simctl openurl booted "your-link-here"
Real iOS device · devicectl
xcrun devicectl device process launch \ --device <udid> --start-stopped \ com.example.app -- your-link-here
Official docs
-
Android · Create deep links
URI schemes and intent filters for Android apps.
-
Android · Verified app links
HTTPS-based App Links with auto-verification.
-
iOS · Universal Links
The modern, HTTPS-based approach for iOS.
-
iOS · Custom URL schemes
Legacy
myapp://-style links. -
AASA validator (Branch)
Verify your
apple-app-site-associationfile.