What you’ll achieve
iOS decides whether a tapped link opens your app by fetching a trust file — the apple-app-site-association (AASA) — from your website. This recipe publishes that file.
You’ll need
- Your Apple Developer Team ID — App Store Connect → Membership.
- Your app’s Bundle ID — e.g.
com.example.app(the same one used for push notifications; if MAM push is already configured these fields are already filled). - A site served over HTTPS (Apple will not fetch the file over HTTP).
Steps
- Go to Local App Setup → Universal Link.
- Enter the iTunes Team ID and iTunes Bundle ID.
- (Optional) Set New Account URL to the path pattern your app should claim, e.g.
/account*. Leave it blank to claim all site paths (/) — fine for app-first sites, but on a content-heavy site every link would try to open the app. - Click Save. The plugin writes the AASA file to both your web root and
/.well-known/, adds a managed block to.htaccessso the extension-less file is served asapplication/json, and then fetches both URLs itself to verify the content type. A failed self-check is logged to the MAM debug log asadmin_alert. - Verify in a browser:
https://yoursite.com/.well-known/apple-app-site-associationshould show JSON with yourTEAMID.bundleidunderappID.
The app side (the Associated Domains entitlement) is handled automatically: the publish payload your app build pulls from this site includes associated_domain (your site host) and associated_paths.
Troubleshooting
- The file isn’t served as JSON — non-Apache servers ignore
.htaccess; add the content-type rule to your nginx/host config. - Changed Team or Bundle ID? Re-save the page; the file is rewritten on every save. Apple caches AASA files on its CDN, so allow up to a day for devices to see changes.
Related articles
- Set up Android App Links
Metadata
| Field | Value |
|---|---|
| Article type | Recipe |
| Plugin slug | mam-universal-link-manager |
| Applies to plugin version | 26.24.1+ |
| Category | Setup |
| Audience | Site operator |
| Last verified | 2026-06-12 |
