Quick Start
/.well-known/apple-app-site-associationfor iOS/.well-known/assetlinks.jsonfor Android
How Deep Links Work
Universal Links (iOS)
- User taps a link to your domain
- iOS checks
/.well-known/apple-app-site-association - If app is installed and paths match, app opens directly
- Otherwise, Safari opens the URL
App Links (Android)
- User taps a link to your domain
- Android checks
/.well-known/assetlinks.json - If app is installed and verified, app opens
- Otherwise, browser opens the URL
Configuration
Apple App Configuration
Android App Configuration
Full Configuration
Generated Files
apple-app-site-association
assetlinks.json
Simple Deep Link Configuration
For simple single-app setups:Deep Link Handler
Handle deep links with smart fallback to web:How It Works
- Parses device from mobile middleware context
- For mobile devices: renders HTML that attempts app deep link
- Falls back to web URL after 2.5 seconds
- For desktop/web: redirects directly to fallback
Generated HTML
For mobile devices, serves:Custom Deep Link Handling
Path Patterns
Wildcard Matching
Excluding Paths (iOS)
Deferred Deep Links
Handle deep links when app is installed after click:Testing Deep Links
iOS Simulator
Android Emulator
Verify Configuration
Client Implementation
iOS (Swift)
Android (Kotlin)
Flutter (Dart)
Best Practices
HTTPS Required
Both Universal Links and App Links require HTTPS. The verification files must be served over HTTPS.CDN Considerations
If using a CDN, ensure the verification files are not cached aggressively:Handle All Cases
Always provide fallbacks for:- App not installed
- Outdated app version
- Invalid deep link paths
Track Deep Link Attribution
Track where users come from:Next Steps
App Store
Version checking and force updates
Push Notifications
Cross-platform push support
API Reference
Complete API documentation