Universal Links, App Links, and Intent Filters: Deep Routing on Every Platform
John Hambardzumian · Full Stack & Mobile Developer | Node.js, React Native, PHP, Laravel | 7+ Years Building Scalable Web & Mobile AppsApr 11, 20265 min readDeep links connect marketing campaigns, email, and web search results to in-app destinations. Universal Links on iOS and App Links on Android verify domain ownership via hosted JSON files—apple-app-site-association and assetlinks.json—enabling HTTPS URLs to open your app without custom schemes when verification succeeds.
Configuration hygiene
Serve association files without redirects where possible; use correct content-type headers. Include all signing certificate hashes Android requires. Rotate certificates deliberately with overlap windows.
React Navigation integration
Map path patterns to navigator screens with typed params. Handle initial URL on cold start separately from mid-session events. Guard unauthenticated routes with redirects to login preserving return URLs in secure storage—not query strings containing secrets.
Debugging failures
Use adb and ios-console tools to inspect verification status. Common issues include CDN caching stale association files, mismatched team identifiers, and path pattern typos.
Deferred deep linking
When the app is not installed, route users through the store then restore intent via branch.io-class services or first-party fingerprinting—mind privacy regulations when using device signals.
Analytics
Tag campaigns with UTM parameters preserved through universal links; sanitize before logging to analytics vendors.
Summary
Deep links are integration contracts between web, email, and native stacks—test end-to-end whenever domains or signing certificates rotate.

Written by John Hambardzumian
Full Stack & Mobile Developer | Node.js, React Native, PHP, Laravel | 7+ Years Building Scalable Web & Mobile Apps. Focused on React Native and full-stack development.