iOS Associated Domains - subdomains seems to be ignored
我有两种构建配置:App 和 App Stage。
每个配置都有不同的 Associated Domains 配置:app.mydomain.com 和 app-stage.mydomain.com。
当然,每个网站都会公开不同的 apple-app-site-association 文件:app.mydomain.com/apple-app-site-association 和 app-stage.mydomain.com/apple-app-site-association(HTTP 200,没有 . json 扩展名等)。
问题是只有第一个注册的域(不幸的是它的Stage)才能正常工作。当我安装了这两个应用程序时,每个深层链接(app.mydomain.com/home 和 app-stage.mydomain.com/home)都会打开 App Stage。当我只安装了 App Sage 时,两个链接也会打开它。当我只安装了应用程序时,没有链接工作。看起来 Associated Domains 的子域被忽略了,只考虑了 mydomain.com。
我假设构建配置定义正确,因为我也在区分其他设置,如 Facebook、Google 和其他。
你有没有遇到过类似的问题? Associated Domains 是否允许使用同一域的不同子域?
更新:
按照@clayjones94 的说明,我检查了每个应用程序是否使用Charles Proxy 下载了正确的JSON 文件。我发现 App Stage 正在获取正确的文件,而 App 没有获取任何文件。
我还在 Charles 中编辑了 app-stage.mydomain.com/apple-app-site-association HTTP 请求中的 URL,以确保 app.mydomain.com/apple-app-site-association 返回正确的 JSON。当我从 URL 中删除 -stage 并重复调用时,它获取了一个不同的 JSON 文件,因此我确认后端对于两种配置都正常工作。
首先我认为我的构建配置不正确。所以我决定将 App\\ 的 applinks:app.mydomain.com 关联域替换为 Stage\\ 的 applinks:app-stage.mydomain.com 以查看 App 配置是否能够获取 App Stage 文件。它工作,应用程序已经下载了 App Stage\\ 的 JSON 文件。同样,看起来 Associated Domains 的子域被忽略了,并且只考虑了第一个注册的子域。
- 你能在你的服务器上看到你的访问日志,看看正在请求什么吗? mydomain.comapple-app-site-association 是否提供任何服务?
-
是的,它可以成功获取(HTTP 200),它看起来与阶段子域 apple-app-site-association 文件几乎相同 - 只是捆绑标识符不同(两个应用程序都在同一个团队中)。
没有什么比域名更重要的了
- 感谢你的回复。 apple-app-site-association 文件不同,Stage App appID 条目:"appID":"3U******2D.de.k****a.app-stage",App appID 条目:"appID":"3U******2D.de.k****a.app"。我希望它不是 iOS 错误,就像 iOS11 上的无提示通知一样...
-
您是否列出了任何其他相关域?
-
不,这是唯一的一个。
n
-
感谢您的回复!当我使用 Charles 验证每个应用程序是否正在下载正确的文件时,我发现当 App Stage 正在下载正确的文件时,App 并没有下载任何 AASA 文件!现在我正在调查原因。
-
请检查更新的问题。当我为应用程序使用 App Stage 关联域时(刚刚将 -stage 添加到 Xcode 中的域),应用程序已下载 App Stage JSON 文件(以前它没有获取任何内容)。
-
嗯这不应该是这样。分支应用程序实际上会从 2 个不同的子域中获取 AASA 文件。对于每个应用程序,我们都有一个类似于您的 -stage 的 -alternate。当用户在原始子域上并且想要深度链接到应用程序时,使用备用域(如果用户在该域上,Apple 有一个限制,即不允许通用链接转到本机应用程序)。在 q1hv.app.link/apple-app-site-association 中查看我的测试应用 AASA,在 q1hv-alternate.app.link/apple-app-site-association 中查看备用 AASA。您的 Apps AASA 文件似乎未正确托管。
-
谢谢你的例子,它让我相信这不应该是问题,我应该继续努力。如果我发现任何其他问题,我会更新问题。