通用 Link 在 iOS 11.2 中损坏

Universal Link broken in iOS 11.2

我在应用程序中使用 Branch deep links 通过社交媒体分享 links 到应用程序中的内容。一段时间以来一切正常。

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

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

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

3) 从那时起,所有 link 总是在 Safari 中打开 Branch 深度视图。

4) 点击 "Open The App",打开 AppStore。

无论在哪个应用程序中我点击link(Notes、WhatsApp、Messages、Facebook...),它总是一样的行为。

通过点击右上角的 "go to link" 按钮(打开应用程序时)未绕过 通用 Link。我在三种不同的设备上进行了测试(iPhone 5s,iPhone 6s,iPhone 7)。都导致了相同的结果。

我发现 iOS 11 beta 2 中存在一个错误,该错误已在 beta 3 () 中修复,但它可能又出现了?!

有人遇到同样的问题或有解决方法吗?

有时通用 links 不适用于 iOS 11.2 新安装的应用程序。

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

通过在 Branch HQ 进行测试,我们发现 Apple App 站点关联域文件(apple-app-site-association 文件)并不总是在应用安装后下载,无论是从应用商店安装时或来自 Xcode.

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

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

缓解措施

设置$uri_redirect_mode

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

这里有更多关于在您的 Branch Journey 或 Deepview 横幅中打开 $uri_redirect_mode 的信息,Branch 向用户显示的网页片段最终深入 link 进入网络浏览器:

Advanced Journey Configuration

延迟深度链接缓解了这个问题

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

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

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

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

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