Configure your apps
iOS
Team ID, bundle ID, Associated Domains and Universal Links.
iOS opens your app from a link (a Universal Link) when your app declares the host in its
Associated Domains and the host serves an apple-app-site-association file that names your app.
Beck Links serves that file; you give it your Team ID and bundle ID and add the capability to the app.
1. Enter the app in the dashboard#
In the environment you are setting up, open Applications, then iOS:
| Field | Value |
|---|---|
| Bundle ID | For example com.acme.shop |
| Apple Team ID | The 10-character ID from your Apple developer account (Membership details) |
| App Store ID | The numeric ID of the App Store listing, for the store fallback |
| Custom scheme (optional) | For the "Open in app" button on pages shown in in-app browsers |
| Pasteboard deferred linking | On by default; the app also opts in (deferred links on iOS) |
Beck Links serves /.well-known/apple-app-site-association on your link hosts, with <Team ID>.<bundle ID>
as the app ID.
2. Add Associated Domains in Xcode#
Open ios/Runner.xcworkspace, select the Runner target, Signing and Capabilities, + Capability,
Associated Domains, and add your hosts:
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:acme.becklinks.com</string>
<string>applinks:acme-test.becklinks.com</string>
</array>Check that Debug, Profile and Release all use the entitlements file and that your App ID has
Associated Domains enabled in the developer account. For development builds, appending ?mode=developer
to a host (applinks:acme-test.becklinks.com?mode=developer) skips Apple's CDN cache; it needs
Developer Mode on the phone.
3. Turn off Flutter's own deep linking#
So Flutter's router does not handle the same URL a second time, set in ios/Runner/Info.plist:
<key>FlutterDeepLinkingEnabled</key>
<false/>4. Raise the deployment target#
The SDK needs iOS 15. Set Minimum Deployments to 15.0 in Xcode; for CocoaPods apps also uncomment
platform :ios, '15.0' in ios/Podfile.
Verify it works#
curl -sS -o /dev/null -w '%{http_code} %{content_type}\n' https://acme.becklinks.com/.well-known/apple-app-site-association
curl -sS https://acme.becklinks.com/.well-known/apple-app-site-association | jq .Expect 200 application/json, no redirect, and your app ID in applinks.details. Then paste a link
into Notes or Messages and tap it.