Skip to content
DL2App

Generate an apple-app-site-association file

Enter your Team ID, bundle ID and the paths your app handles. The file is built as you type, in the format iOS reads today, with the older keys if you still support iOS 12.

Free. No account, no email.

10 characters. developer.apple.com → Membership details.

Xcode → your target → General → Bundle Identifier.

One per line. * matches any run of characters, ? matches one. Leave empty for every path.

One per line. These are written first, because iOS uses the first rule that matches.

apple-app-site-association
{
  "applinks": {
    "details": [
      {
        "appIDs": [
          "ABCDE12345.com.example.app"
        ],
        "components": [
          {
            "/": "/*"
          }
        ]
      }
    ]
  }
}

The sample IDs above are placeholders. Enter your own and they are replaced.

Where the file goes

  1. Save it as apple-app-site-association, with no file extension.
  2. Serve it at https://your-domain/.well-known/apple-app-site-association, on the exact host your links use. example.com and www.example.com are different hosts and each needs its own copy.
  3. Answer with status 200 and Content-Type: application/json. A redirect, even from http to https on another host, makes iOS give up.
  4. In Xcode, add applinks:your-domain under Signing & Capabilities → Associated Domains. The setup snippets have the exact lines.

What goes wrong most often

  • Your site answers with a web page. A single-page app's catch-all route, or a bot challenge, replies before the file does. Serve /.well-known/ first.
  • The file changed but phones did not notice. Phones do not fetch the file from you. They read Apple's copy, which Apple refreshes on its own schedule, usually within a day.
  • The wrong prefix. The first part of an app ID is your Team ID, not your name and not the bundle ID's first word. A few long-lived apps have an App ID Prefix that differs from the Team ID; the Identifiers page of your developer account shows it.
  • The file is too big. Apple reads at most 128 KB.

Once it is live, run the link checker on your domain. It fetches the file the way Apple does, compares it with Apple's cached copy and tests your paths against the rules.

DL2App hosts this file for you on every link domain, keeps it in step with the apps you add, and checks on a schedule that Apple can still read it.

Try DL2App free

What people use next

All 15 tools →
apple-app-site-association generator · DL2App