通用链接的开发者模式不会绕过Apple的CDN

问题描述 投票:0回答:1

我正在向我的

apple-app-site-association
文件添加路径。我已经进行了更改,并使用 Ngrok 作为反向代理在我的开发机器上本地工作。一切都经过测试,因此我已将更改部署到我的暂存环境中。

我的暂存 URL 不可公开访问,因为它位于专用网络后面。我面临的问题是,尽管将

?mode=developer
添加到我的暂存 URL(在权利文件中),但我的设备似乎并未绕过 Apple 的 CDN 来获取
apple-app-site-association
文件的副本。

applinks:www.mydomain.com
applinks:staging.my-nonprod-domain.com?mode=developer
applinks:integration.my-nonprod-domain.com?mode=developer

我已在设备上启用关联域开发,并且正在通过活动的开发配置文件构建应用程序。

我以前也有过这个工作,但现在好像不行了。我正在运行 Xcode 14.1 和 iOS 16.4.1(a)。

我没有想法,所以如果能指出可能出什么问题,我将不胜感激。

ios ios-universal-links apple-app-site-association
1个回答
0
投票

在为链接添加新域时我遇到了同样的事情。直到 xcode 14 都没有问题,甚至可以在模拟器上运行。

现在(Xcode 15.2)我只能在设备上进行测试:

  1. 确保您在“签名和功能”选项卡的“关联域”权利中拥有
    ?mode=developer
    (如果您使用 plist,则在
    com.apple.developer.associated-domains
    键下)
  2. 在手机上启用关联域的开发模式:“设置 -> 开发者 -> 关联域开发”
  3. 您需要安装 iPhone 并将其连接到代理。我个人使用 Proxyman (https://docs.proxyman.io/debug-devices/ios-device),但 Charles、Fiddler 等也可以工作。
  4. 非常重要:要测试通用链接,您需要从设备中删除该应用程序。并在每次更新关联 json 时将其删除。否则应用程序不会请求它。
  5. 在手机上运行应用程序:在代理中,您将看到关联文件的请求列表:

  1. 如果您没有看到对您网站的直接请求(我的情况就出现过这种情况) - 您需要阻止对Apple CDN的请求(您可以在代理中为此域启用ssl代理,然后所有请求都会因 ssl 握手错误而失败)并重新安装应用程序。

  2. 可选,但很方便:我在没有现有网站的情况下测试了链接,因此我也使用代理来模拟服务器的响应。 使用“map local”到

    https://<your domain>/.well-known/apple-app-site-association
    并使用要检查的关联 json 模拟响应。您可以在 Apple 网站上看到的 json 示例 (https://developer.apple.com/documentation/xcode/supporting-linked-domains)

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