6

我有两种构建配置:AppApp Stage

每个配置都有不同的Associated Domains配置:app.mydomain.comapp-stage.mydomain.com

当然,每个网站都会暴露不同的apple-app-site-association文件:app.mydomain.com/apple-app-site-associationapp-stage.mydomain.com/apple-app-site-association(HTTP 200,不带 .json 扩展名等) .

问题是只有第一个注册的域(不幸的是它是 Stage)才能正常工作。当我安装了这两个应用程序后,每个深层链接(app.mydomain.com/homeapp-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。当我-stage从 URL 中删除并重复调用时,它获取了一个不同的 JSON 文件,所以我确认后端对于两种配置都正常工作。

首先,我认为我的构建配置不正确。所以我决定将 App 的applinks:app.mydomain.com关联域替换为 Stage 的applinks:app-stage.mydomain.com,以查看 App 配置是否能够获取 App Stage 文件。它起作用了,应用程序已经下载了 App Stage 的 JSON 文件。同样,看起来 的子域Associated Domains被忽略了,并且只考虑了第一个注册的子域。

4

2 回答 2

2

在通用链接(应用程序域)方面,没有什么类似于域和子域的概念。我猜应该是 apple-site-association-file 配置存在问题。

请检查有关appID字段的 apple-site-association-configurations。我怀疑您可能在两个文件中放置了相同的 appID。

对于这两种配置,您应该有不同的 appID。

于 2017-12-20T16:39:26.027 回答
1

拉取 Apple App Site Association 文件时,您的操作系统应分别拉取两者。我建议删除这两个应用程序并重新启动手机,以确保没有旧的 AASA 文件被缓存。

当您将应用程序重新安装到手机上时,您可以使用 Charles Proxy 查看每次安装是否提取了正确的 AASA 文件。由于您在关联域中都有这两个 URL,因此每次安装都将拉下两个 AASA 文件。如果您的生产应用程序没有拉下两者,则可能是Apple 问题,您只需删除该应用程序并重试。

如果您验证每个应用程序的两个 AASA 文件都被拉下,那么您应该验证 appID 是否正确(您似乎拥有)。当两个应用程序都具有关联的域和具有正确 appID 的 AASA 文件时,您的操作系统应根据链接打开正确的应用程序。如果这仍然不起作用,则可能意味着您的 AASA 文件已由与您的暂存应用程序相关联的权利签名,但不是您的生产应用程序。

我建议使用Branch进行通用链接。Branch 有测试链接,您可以使用它们来测试您的 prod 应用程序的链接,并且您应该能够在 Branch 上为您的 staging 应用程序创建一个单独的应用程序,这样您就可以为这两个应用程序提供不同的链接。好消息是我们将为您完成所有的 AASA 处理和签名。深度链接服务是免费的,我们执行延迟深度链接:)。

于 2017-12-20T19:10:50.250 回答