iOS Associated Domains (Universal Links) with Wildcards not working
I added my findings to this thread: https://forums.developer.apple.com/thread/47315
In short, even in iOS 10, it appears that the wildcard setup requires that the apple-app-site-association
file be served by the wildcard's root.
For instance, if you want to use *.domain.com
, then the apple-app-site-association
needs to be hosted at both, e.g., app1.domain.com
and domain.com
, else it won't work with simply specifying applinks:*.domain.com
in Xcode.
This is unfortunate if your main site is hosted at www.domain.com
, and that you have a 301 redirect on domain.com
(which redirects you to www.domain.com
), because Universal Links do not allow redirects.
The workaround I found was to create a main subdomain for your app, and to use sub-subdomains for the wildcard. E.g.
app.domain.com
(must serve theapple-app-site-association
file)server1.app.domain.com
(must serve theapple-app-site-association
)server2.app.domain.com
(...)
That way, in Xcode, you may only specify applinks:*.app.domain.com
and Universal Links will work without you having to specify server1.app.domain.com
, server2.app.domain.com
, and so on... in Xcode.
Note, however, that you must also explicitly specify applinks:app.domain.com
if you plan on using that server as well with your app.
I hope this helps.
It seems that adding a wildcard in the domain part of the applinks
has only been introduced in iOS 9.3 Beta 2
. In 9.3 Beta 2 release notes:
You can now use Universal Links with arbitrary subdomains instead of needing to list all of the app’s subdomains as fully qualified domain names. Entries have the form:
:[:port number] in which is “webcredentials”, “activitycontinuation”, or “applinks”.
The part of the entry can now optionally be prefixed with “*.” to indicate a wildcard subdomain. For example:
applinks:*.example.com
You say that you run on iOS 9.3.2
. But is your deployment target
>= iOS 9.3
? If it's not: try by changing it. I think it will solve your issue.
Here you can found a copy of this release notes (sorry, I do not have any other public source)
Edit:
Even if the Apple Doc say that you can use wildcards on domains, they seems to have an issue on this:
To match all subdomains of an associated domain, you can specify a wildcard by prefixing . before the beginning of a specific domain (the period is required). Domain matching is based on the longest substring in the applinks entries. For example, if you specify the entries applinks:.mywebsite.com and applinks:*.users.mywebsite.com, matching for the domain emily.users.mywebsite.com is performed against the longer *.users.mywebsite.com entry. Note that an entry for *.mywebsite.com does not match mywebsite.com because of the period after the asterisk. To enable matching for both *.mywebsite.com and mywebsite.com, you need to provide a separate applinks entry for each.
I think it is apple bug in documentation. I got same error on 9.3.1. And 9.3.2 works fine. Very interesting link, about signing problems, see Laurence Fan's comment
Apple should say that *.domain.com works for >= 9.3.2 in this link Support Universal Links