iOS 11.2 中的通用链接中断

Posted

技术标签:

【中文标题】iOS 11.2 中的通用链接中断【英文标题】:Universal Link broken in iOS 11.2 【发布时间】:2018-05-27 20:16:30 【问题描述】:

我在应用中使用分支深层链接,通过社交媒体分享应用中内容的链接。有一段时间一切正常。

更新到 iOS 11.2 时遇到以下行为:

1) 更新后通用链接仍然有效。

2) 我卸载了该应用程序并重新安装了它。

3) 从那时起,所有链接始终在 Safari 中打开 Branch deep view。

4) 点击“打开应用程序”,打开 AppStore。

无论在哪个应用中我点击链接(Notes、WhatsApp、Messages、Facebook 等),它始终是相同的行为。

通过点击右上角的“转到链接”按钮(打开应用程序时)未绕过通用链接。我在三种不同的设备(iPhone 5s、iPhone 6s、iPhone 7)上进行了测试。都导致了相同的结果。

我发现 iOS 11 beta 2 中存在一个 bug,该 bug 在 beta 3 中已修复 (ios 11.2 beta universal links open my app and safari),但它可能再次出现?!

任何人有同样的问题或解决方法?

【问题讨论】:

我也有这个问题:iOS 11.2.1 几天前发布,似乎仍然有这个问题。开发者中心 (11.2.5) 中有一个 beta 版本可以解决这个问题,但我现在无法测试。 【参考方案1】:

有时通用链接在 iOS 11.2 上不适用于新安装的应用。

症状是点击通用链接不会打开手机上新安装的应用程序。通用链接将用户带到网页并提示再次下载应用程序。

通过在 Branch HQ 进行的测试,我们发现 Apple App Site Associated Domains 文件(apple-app-site-association 文件)并不总是在安装应用程序后下载,无论是从应用商店或 Xcode 安装时。

删除应用程序,重新启动手机,重新安装应用程序,然后等待一分钟左右似乎可以解决这个问题。这显然是一种糟糕的用户体验。

我们已向 Apple 提交了radar 并将继续跟踪此问题。

缓解措施

设置$uri_redirect_mode

在链接上设置 $uri_redirect_mode 选项可以让 Branch 尝试强制链接打开应用程序,即使它可能会向用户显示错误。您可以阅读有关此选项的信息here, in the Branch docs.

以下是有关在 Branch Journey 或 Deepview 横幅中打开 $uri_redirect_mode 的更多信息,如果最终深度链接到网络浏览器,Branch 会向用户显示网络 sn-p:

Advanced Journey Configuration

延迟深度链接可缓解此问题

Branch 的延迟深度链接技术缓解了此问题:如果用户在单击通用链接后从主屏幕打开应用程序,延迟深度链接仍然有效,并且链接内容显示在应用程序中。

【讨论】:

在我所有的测试设备上,第一次点击任何链接都会导致商店。从那时起,我总是被重定向到应用程序。很烦人,它在第一次点击时不起作用,但最后至少它在之后起作用。【参考方案2】:

作为@clayjones94 答案的补充,在发布和调试目标之间切换后,我无法让我的 iPad 第二代 (iOS 12.1.1) 恢复使用通用链接的能力。 昨天它突然开始工作了,但是在更改构建目标后,通用链接再次断开。

我已经卸载、重新启动、安装、重新启动等等。

不过,我能够在模拟器中测试功能,所以现在,我建议尝试新的模拟器,以确保您的 AASA 文件在服务器上是正确的。

编辑:如果您有代理,这也可能会破坏应用程序和网站之间的验证

【讨论】:

以上是关于iOS 11.2 中的通用链接中断的主要内容,如果未能解决你的问题,请参考以下文章

了解通用链接委托方法及其在 iOS 中的用途

Navicat链接Oracle11.2 报错

iOS 8 上的通用链接?

在委托方法中无法检测到 IOS 通用链接

Firebase 通用链接已禁用且无法正常工作 (iOS)

IOS- 与 Firebase 的通用链接和使用 location.href 的错误?