如何调试通用链接

Ale*_*RKO 6 xcode ios cordova ios-universal-links

我使用cordova插件“ionic-plugin-deeplinks”(据我所知也适用于普通的cordova应用程序)。

在 Android 上,单击链接时用户可以在 chrome 和我的应用程序之间进行选择。=> 我认为应用程序链接有效 => 因为我可以访问 window.IonicDeeplink 并将用户重定向到正确的页面

我无法在 iOS 上有相同的行为,当我单击链接时,我总是在 Safari 中打开该应用程序。

我怎样才能找到问题的线索?

更多背景:

  • apple-app-site-association带有 HTTP 200(仅通过 https),它位于/.well-known/apple-app-site-association
    • 我检查了 TeamID 和 BundleID 5 次(至少);
    • 使用branch.io 验证器,我将所有验证变为绿色:
      • 您的域有效(有效的 DNS)。
      • 您的文件通过 HTTPS 提供。
      • 您的服务器不会返回大于 400 的错误状态代码。
      • 已找到您文件的“内容类型”标头 :)
      • 您的 JSON 已通过验证。
    • 使用苹果验证器,我得到:“所需的操作无法提取通用链接所需的信息。了解如何实施推荐的通用链接。错误没有具有域权利的应用程序用于验证深层链接双重身份验证的权利数据来自当前发布的应用程序的版本。此数据可能需要 48 小时才能更新。” (但一些开发人员说工作应用程序添加了相同的错误)如何处理该结果?
    • 在使用 Xcode 安装应用程序时监视服务器的日志时,我看到一个请求获取 HTTP 200 apple-app-site-association
  • 在使用 Xcode 安装应用程序时,我没有在 Xcode 中获取任何关于 swcd 的日志(我在这里读到,如果我在安装应用程序时出错,我应该这样做)。成功的安装是静默的吗?
  • 我按照该指南设置权利,但有些事情感觉很奇怪:
    • 与指南中的快照不同,我没有*.entitlements在我的项目中找到任何文件。我应该有一个cordova吗?(不过,我的 xCode 似乎记得我的设置)。是否可以检查已安装的应用程序是否获得权利?
    • 我确实像这样在 Xcode 中设置了我的域:applinks:mydomain.com并且开关是打开的。但我从未将本地开发环境中的任何内容上传到苹果服务。我应该有吗?如果是,如何?

我目前的审讯被突出显示,但对任何缺乏理解的任何解释都将受到欢迎!!!

在那之前,我开始对 testFlight 进行验证以寻找更多信息。

Var*_*rry 6

使用 Xcode 安装应用程序时,我没有在 xCode 中看到引用 swcd 的日志

我手动实现了通用链接,但情况类似。特别是我在安装应用程序时提到了空的swcd进程日志,结果很可能 iOS 甚至没有尝试下载apple-app-site-association文件,就像责任进程没有运行一样。就我而言,设备重新启动有所帮助,深度链接开始起作用。

因此,我认为当您确定所有设置后,重新启动设备是故障排除的另一步骤。


小智 6

对于任何尝试在开发中调试此问题的人:

  1. 在 XCode 中,确保您正在编辑签名和功能的调试版本。

  2. 要绕过 Apple Universal Links CDN,请配置您的调试域,例如applinks:?mode=developer ——在开发中添加该查询字符串非常重要。

  3. 在您的 iOS 设备上,转到“设置”->“开发人员”->“通用链接”,并确保“关联域开发”开关已打开。

  4. 在您的 iOS 设备上,在“设置”->“开发人员”->“通用链接”->“诊断”中,输入您的通用链接 URL 并确保您获得绿色复选标记。

完成所有这些步骤后,通用链接即可在本地工作。