iOS关联域 - 子域似乎被忽略

时间:2017-12-20 15:41:14

标签: ios iphone deep-linking associated-domains

我有两个构建配置: 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扩展名等)。

问题是只有第一个注册域名(不幸的是它的舞台)才能正常运行。当我安装了这两个应用时,每个深层链接( app.mydomain.com/home app-stage.mydomain.com/home )都会打开App Stage。当我只安装了App Sage时,两个链接都会打开它。当我只安装App时,没有链接正常工作。 看起来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请求中编辑了网址,以确保 app.mydomain.com/apple- app-site-association 返回正确的JSON。当我从URL中删除-stage并重复调用时,它已获取另一个JSON文件,因此我确认后端对两种配置都正常工作。

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

2 个答案:

答案 0 :(得分:1)

没有像域名和域名通用链接(App Domains)的子域概念。我猜应该存在apple-site-association-file配置的问题。

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

这两种配置应该有不同的appID。

答案 1 :(得分:1)

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

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

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

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