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

问题描述 投票:5回答:2

我有两个构建配置: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时,两个链接都会打开它。当我只安装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请求中编辑了URL,以确保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的子域被忽略,只考虑第一个注册的子域。

ios iphone deep-linking associated-domains
2个回答
1
投票

当涉及到Universal Links(App Domains)时,没有像域和子域概念那样的东西。我猜应该存在apple-site-association-file配置的问题。

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

您应该为这两种配置使用不同的appID。


1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.