iOS needs the same two halves, shown here from Apple's and Capacitor 243,123 's documentation. In Xcode 10 , the App target's Signing & Capabilities tab gets the Associated Domains capability with the entry applinks:booknest.example.com, which Xcode writes to App.entitlements. On the server, a file named apple-app-site-association, with no .json extension, goes to the same .well-known/ folder, served over HTTPS without redirects:
{
"applinks": {
"details": [{
"appIDs": ["ABCDE12345.com.example.booknest"],
"components": [
{ "/": "/books/*", "comment": "book pages open in the app" },
{ "/": "/checkout/*", "exclude": true, "comment": "checkout stays on the web" }
]
}]
}
}ABCDE12345 stands for your Team ID, followed by the bundle identifier. The components format (iOS 13 and later) matches paths, ? query items and # fragments and can exclude paths; it replaces the older paths array. Unlike Android's file, it lists paths: only /books/... opens in BookNest. iOS fetches the file when the app is installed or updated.