Dispatch: Support for New AASA Format
February 2, 2022 | Updates & Announcements
Overview
Apple has released new support for Associated Domains with an updated apple-app-site-association (AASA) file format. The biggest change in the AASA format is the ability to include URL parameters for Universal Link determination. This change will allow for enhanced flexibility on the exclusion for a better user experience.
AASA files can now specify a set of components that determine paths and parameters on a domain that will allow or disallow the app from opening on link click. For Branch, this means enhanced flows for Branch Links and Universal Email. When you set your app.link domain and when Branch integrates with an Email Service Provider (ESP), Branch will generate an AASA file to enable iOS Universal Links on those domains.
When Branch generates the AASA file, it will now include the following component:
{
"/": "/e/*",
"?": { "$web_only": "true" },
"exclude": true,
"comment": "Matches any URL whose path starts with /e/ or includes $web_only=true and instructs the system NOT to open it as a Universal Link"
}
How does it work?
The core functionality of the AASA file is to provide instruction for what paths and parameters are included or excluded when determining if the app should open via Universal Links or not.
For example, say you have the following AASA file hosted on a domain:
{
"applinks": {
"details": [
{
"appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
"components": [
{
"#": "no_universal_links",
"exclude": true,
"comment": "Matches any URL whose fragment equals no_universal_links and instructs the system not to open it as a universal link"
},
{
"/": "/buy/*",
"comment": "Matches any URL whose path starts with /buy/"
},
{
"/": "/help/website/*",
"exclude": true,
"comment": "Matches any URL whose path starts with /help/website/ and instructs the system not to open it as a universal link"
},
{
"/": "/help/*",
"?": { "articleNumber": "????" },
"comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters"
}
]
}
]
},
"webcredentials": {
"apps": [ "ABCDE12345.com.example.app" ]
},
"appclips": {
"apps": ["ABCED12345.com.example.MyApp.Clip"]
}
}
Looking closer at the components
array, we can see for which URL paths and parameters will allow the app to open via Universal Links. In the case of the URLs with the no_universal_links
fragment or paths that start with /help/website/
, the app will not open via Universal links because of the "exclude": true
attribute.
FAQ
I already have Universal Email enabled, do I need to do anything?
If you already have Universal Email enabled and integrated, you do not need to update anything to preserve functionality. You can, however, make the following updates to reduce code bloat:
- If you have implemented the code handler for web-only email links on iOS, you may remove it. The web-only handler is still required for Android.
Will this change how my current Branch Links function?
No. Your standard Branch Links (app.link or custom domains) should continue to function normally.
Updated almost 3 years ago