Universal Links are Apple's native iOS deep-link mechanism, introduced in iOS 9 (2015). A Universal Link is a real HTTPS URL that iOS automatically intercepts when the corresponding app is installed — opening the app to a specific in-app destination instead of opening Safari. When the app isn't installed, the same URL opens normally in Safari. The URL doesn't change based on context; iOS handles the routing.
How Universal Links work
- AASA file: the developer hosts an `apple-app-site-association` JSON file at `https://yourdomain.com/.well-known/apple-app-site-association`. The file declares which URL paths the app handles + the App ID.
- iOS verification: when iOS installs the app, it fetches the AASA file from the configured domain and verifies the linkage. Successful verification enables Universal Link interception.
- URL interception: any subsequent tap on a configured URL (in Messages, Mail, Safari, third-party apps) opens the iOS app instead of the browser. The app receives the URL and routes to the appropriate in-app destination.
- Fallback to web: if the app isn't installed, the same URL opens in Safari — no broken link, no UX surprise.
Why Universal Links replaced custom URL schemes (`myapp://something`): custom schemes broke when the app wasn't installed (the link did nothing), didn't work in Mail / Messages / Safari without prompting the user, and could be hijacked by other apps registering the same scheme. Universal Links solve all three by using real HTTPS URLs validated by the AASA mechanism.
Android equivalent: App Links. Conceptually identical — HTTPS URLs verified via an `assetlinks.json` file on the website's root, intercepted by Android when the app is installed. Both platforms have converged on the same pattern for deep-link safety.