与“applinks:”相关的域在开发中不起作用
Posted
技术标签:
【中文标题】与“applinks:”相关的域在开发中不起作用【英文标题】:Associated Domains with `applinks:` is not working in development 【发布时间】:2020-12-08 14:18:46 【问题描述】:我正在尝试在我未发布的 ios 14 应用程序中设置 Associated Domains。我尽可能地遵循了文档。我正在使用本地开发 Web 服务器以及模拟器和真 iPhone 中的应用程序本身进行本地测试。
不仅链接没有在我的应用程序中打开,应用程序甚至没有尝试从我的本地 Web 服务器请求文件 https://mycomputer.local/.well-known/apple-app-site-association
(我让 Web 服务器在请求时打印调试消息,但消息是仅在我从网络浏览器手动加载时打印)。
这是我做过/检查过的事情的清单:
Xcode 12.2: 在签名和功能下添加了关联域 已添加到域:applinks:mycomputer.local?mode=developer
(我也尝试了 IP 地址)
我禁用了自动管理签名,而是在https://developer.apple.com/account/resources/profiles/list 上创建了一个配置文件(类型开发,平台iOS,它有 Associated Domains 以及其他已启用的功能,它链接到我的应用程序包 ID)并为调试构建选择了该配置文件。
我确保所有相关设备都可以访问 URL https://mycomputer.local/.well-known/apple-app-site-association
,即我的计算机、模拟器中的 Safari、真实 iPhone 上的 Safari(所有设备都连接到本地网络并成功显示我的 JSON 文件)。
截图:
如上所述,我几乎可以排除 JSON 文件本身的问题,因为我可以证明设备甚至没有访问它。我是否遗漏了什么或误解了这个概念?
【问题讨论】:
IP 地址将不工作也删除在功能中添加的域中的任何查询参数。 您也可以尝试在您的网络服务器的根目录中复制该文件吗?我不确定 Apple 是否会抓取本地域,因此它完全丢失了该域。 @Satheesh 谢谢。我也让 JSON 在 root 上可用,但也无法从那里访问它。查询参数应该正是这样做的,避免使用 Apple CDN 以使私有服务器正常工作,请参阅:developer.apple.com/documentation/bundleresources/entitlements/… 您的本地网络服务器上是否安装了任何有效的 SSL 证书?如果没有,请尝试将App Transport Security Settings
权利添加到您的 Info.plist 中,并将 Allow arbitrary loads
键设置为 YES。
@RainerSchwarz 谢谢,但是是的,我有一个接受的证书,但也有你建议的设置。
【参考方案1】:
我自己的答案:在documentation 中描述的权利中使用查询字符串?mode=developer
似乎根本不起作用。
为了验证这一点,我设置了一个可以在互联网上公开访问的真实服务器并尝试了两种变体:
applinks:example.com
applinks:example.com?mode=developer
第 1 项有效,但 JSON 是通过 Apple 的 CDN 加载的,您不能将其用于本地开发或快速测试 JSON 文件的不同版本,因为 Apple 可能会将文件缓存一天。
2号根本不起作用,不会向服务器发出请求。
【讨论】:
回家他们把这件事搞得这么复杂?以上是关于与“applinks:”相关的域在开发中不起作用的主要内容,如果未能解决你的问题,请参考以下文章