Universal Links not working with International Domain Names?

Hello there!

My problem concerns Universal Links:

  • My website is https://www.xn--voil-3na.app/ and has a proper apple-app-site-association set, which is validate by all validators, and also well cached on Apple side. (requested with curl https://app-site-association.cdn-apple.com/a/v1/xn--voil-3na.app)
  • My app is voilà and :
    • My provisioning profile allows Associated Domains
    • I can see the associated domains is well defined to xn--voil-3na.app on XCode
    • My AppID and bundle (in the entitlements) are matching the ones on my apple-app-site-association

After having made all the debugs following the docs, i'm wondering if the problem doesn't come from my international domain name.

Really looking forward some help, as my application is growing (really) fast and I'd like to serve this feature to my users...

Sincerly,

AB from voilà

I appreciate you post. I see that the JSON file is successfully retrievable from both your server and the Apple server using the following commands:

curl -v https://www.xn--voil-3na.app/.well-known/apple-app-site-association
curl -v https://app-site-association.cdn-apple.com/a/v1/xn--voil-3na.app

The "appID" seems to be misplaced in the original JSON, which is causing an issue. I've downloaded the JSON and verified it using sudo swcutil verify -d com.voila.voila -j ./test2.json -u https://xn--voil-3na.app/place, as per Apple's guidelines: Debugging Universal Links.

This led to the discovery of a couple of problems with the JSON format. To help you get going, I've created a simplified version of the JSON based on yours, ensuring the "appID" is placed correctly:

{
  "applinks": {
    "details": [
      {
        "appIDs": ["36S5UK7JXS.com.voila.voila"],
        "components": [
          {
            "/": "/place/*",
            "comment": "Matches any URL with a path that starts with '/place/'."
          }
        ]
      }
    ]
  },
  "webcredentials": {
    "apps": [ "36S5UK7JXS.com.voila.voila" ]
  }
}

However, there's still a discrepancy in the domain. The command gives an error: Input domain “com.voila.voila” did not match input URL’s domain “voilà.app”. This suggests that the domain specified in the sudo swcutil command, "com.voila.voila", doesn't match the domain used in the URL, “voilà.app”.

Please ensure that you are using the correct bundle ID ('36S5UK7JXS.com.voila.voila' in this case) everywhere, and that the domain name matches the bundle ID as specified within Apple's guidelines. Pay special attention to what's shown after the "." in your bundle ID and match it with the top-level domain of your website URL.

Once you fix the domain exposure issue, start test the AASA file with a simple default AASA file to validate that everything is working as expected. Once that's supported you can add more pathsRequired as needed. Give it another shot and let me know how it goes or better yet, follow the troubleshooting documentation that goes over each step: https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links

Thank you for answering me.

I think the command should look like this:

sudo swcutil verify -d xn--voil-3na.app -j ./apple-app-site-association.json -u https://xn--voil-3na.app/place/aaa

But anyway, it is returning me:

Input domain "voilà.app" did not match input URL's domain "voilà.app".

Concerning my bundleID, i can confirm this the correct as showing in the following screenshot:

Don't you have any guidelines at Apple against IDN (International Domain Names)?

Looking forward you help :)

Note that, surprisingly the command:

sudo swcutil dl -d xn--voil-3na.app

returns the following:

The operation couldn’t be completed. (SWCErrorDomain error 8.)

@DTS Engineer Bump.

This is really blocking me from releasing a waited feature...

Universal Links not working with International Domain Names?
 
 
Q