iOS 13 Apple-App-Site-Association file format changes

I am having inconsistent results when it comes to supporting Universal Links in my app. I had things working with the following format (I changed my Team ID here even though it's publicly available at the domain):


{

"webcredentials": {

"apps": ["TEAMID.com.kasey.TipMe"]

},

"applinks": {

"apps": [],

"details": [{

"appID": "TEAMID.com.kasey.TipMe",

"paths": [

"/pay"

]

}]

}

}

The paths node contains a path meaning any url in the format of https://www.tppy.app/pay?queryItems should open my application so I can process the query items. I have the associated domain in my entitlements file properly with the fully qualified domain: applinks:www.tppy.app

Then I stumbled upon this link that seems to have changed the format and location of the apple-app-site-association file. I moved the file to /.well-known/apple-app-site-association and am serving the JSON. Does anyone know if the new format is required for iOS 13+ applications? Or why am I seeing inconsistent results? The universal links seem to work for a period of time then stop working -- both when I distribute the application via TestFlight as well connect it directly to my device.

Post not yet marked as solved Up vote post of kschins Down vote post of kschins
5.5k views

Answers

Face the same issue today and yes format for deep links changed in iOS13. You can find more here.

To support iOS13 you need to use another set of keys in applinks dictionary. Also you need to leave existing data to support iOS12 and earlier.

Code Block
{
"webcredentials": {
"apps": [
"TEAMID.com.kasey.TipMe"
]
},
"applinks": {
"apps": [],
"details": [
{
"appID": "TEAMID.com.kasey.TipMe",
"paths": [
"/pay"
],
"appIDs": [
"TEAMID.com.kasey.TipMe"
],
"components": [
{
"/": "/pay"
}
]
}
]
}
}


The only real documentation on this is buried in a WWDC19 video, because Apple can't be bothered to provide decent canonical documentation:

https://developer.apple.com/videos/play/wwdc2019/717/