6.7 · Info.plist, URL schemes, universal links and associated domains

Much of what the system knows about your app is written down in a property list and a file on your web server. Getting those two documents right is most of what deep linking is.

Mental model. The system trusts two things that must agree: your app’s declaration (Info.plist and entitlements) and your website’s declaration (the association file). Links only open your app when both say so.

Declaring the app

What Info.plist controls.

  1. What is Info.plist for, and which keys matter most? 6.7.1 · L2
    Info.plist is the app’s declaration to the system, read before your code runs. It identifies the app (CFBundleIdentifier, CFBundleShortVersionString…

Opening the app from a link

Custom schemes, universal links and the association file.

  1. What is the difference between a custom URL scheme and a universal link, and which do you use? 6.7.2 · L3
    A custom URL scheme (myapp://item/42), declared in CFBundleURLTypes, is simple but weak: any app can claim the same scheme (the system picks one, not…
  2. What does the apple-app-site-association file contain, and how does the system verify a domain? 6.7.3 · L3
    You host a JSON file, the apple-app-site-association (AASA), at https://example.com/.well-known/apple-app-site-association, served over HTTPS with no…

More in iOS platform internals