1. Associated Domains entitlement
- In Xcode, select your app target and open Signing & Capabilities.
- Click + Capability and add Associated Domains.
- Add your DeepLink domain in this form:
applinks:your-domain.comReplaceyour-domain.comwith the host you use in the DeepLink dashboard (e.g. your app’s subdomain).
ios/Runner/Runner.entitlements (or your custom entitlements file):
2. Apple App Site Association (AASA)
DeepLink automatically hosts the required Apple App Site Association (AASA) file on your link domain (managed or custom) once you configure your app’s bundle ID and Apple Team ID in the dashboard. You don’t need to create or host this file yourself.3. Initialize the SDK
In your Flutter app, call the DeepLink SDKinit with your API key (and optional base URL) as shown in Quickstart. On iOS, since there is no install referrer like Android, the backend:
- Looks at recent clicks for this user/device.
- Computes a score based on IP (including partial matches), country, city, platform, OS version, and deviceId (when present).
- Picks the best-matching click above a minimum score and attributes the install to that link (including its UTM and campaign data).
4. Test on device
Universal Links often do not work in the simulator. Test on a real device:- Install the app from Xcode (or TestFlight).
- Open a DeepLink link in Safari (or Messages) — do not paste the link in the address bar; use a tap from another page or app.
- The app should open if the domain and AASA are correct.
Troubleshooting
- Link opens in Safari instead of the app — Confirm the entitlement domain matches the link host exactly (no
https://, no path). Ensure the AASA file is at/.well-known/apple-app-site-associationand returns the correctContent-Type(e.g.application/json). - Install not attributed — The backend matches by IP and recent click; ensure the Track Install (or SDK) call runs on first launch and that the user actually clicked a DeepLink link before installing.
Handling links
Handle incoming deep link URLs in your app.

