iOS 8 与 iOS 10 上的 Firebase 动态链接行为

Firebase Dynamic links behaviour on iOS 8 vs. iOS 10

我在 App Store 上已有一个应用程序,该应用程序注册了自定义 URL 方案。 我为新版本的应用程序实施了 Firebase 动态链接。 在测试新的 links 时,当我打开安装在 iOS10 上的旧应用程序的 FDL 时,我被重定向到 App Store 以更新应用程序。 当我打开安装在 iOS 8 上的旧应用程序的 FDL 时,旧应用程序被打开,因为我的 URL 方案的 openUrl 被触发。我的应用程序因此而崩溃,因为旧应用程序无法处理此类 link。 我预计在 iOS 8 上,它还会像在 iOS 10.

上那样将我重定向到 App Store 以更新应用程序

即使将 imv=min_app_version(如 here 所述)作为 FDL 的一部分发送也无济于事。

为什么这种行为在 iOS 8 和 10 之间有所不同?有什么办法可以阻止 iOS 8 上发生这种情况吗? 谢谢。

iOS 8 确实很好地支持自定义 URL 方案,而且 iOS 8 不支持通用链接。由于这些原因,Firebase 动态链接将使用自定义 URL 方案来检测您的应用程序在 iOS 8 上 installed/not-installed(并打开应用程序)。

iOS 9 及更高版本对自定义 URL 方案没有很好的支持,这些 OS 具有通用链接。 Firebase 动态链接将在那里使用通用 links。

关于imv:我们确实提供了imv参数,但与Android相反,我们不知道安装的iOS App的版本。我们希望 App 能够处理 imv。例如,如果打开 link 的应用程序的版本号低于 imv 中指定的版本号,应用程序应向用户显示消息并重定向到 AppStore 进行升级。

解决这种情况的一种方法是创建新的自定义 URL 方案,该方案在您已发布的应用程序版本中不存在。通过这种方式,那些崩溃的旧应用程序将不会被 Firebase 动态链接打开。