ios - 在 iOS 上安装多种风格时,Firebase 动态链接无法打开正确的应用程序

标签 ios firebase flutter firebase-dynamic-links

我们为 Android 和 iOS 开发了一款 Flutter 应用,具有不同的风格:devtestprod,因此我们有 6 个应用全部的。为了吸引用户,我们通过电子邮件发送一个 Firebase 动态链接(其中包含深层链接),以便在用户点击时将其导航到特定屏幕。

预期的行为是,当用户点击 dev 应用程序的动态链接时,它会在 dev 应用程序中打开一个屏幕。其他口味类似。

现在这在 Android 上运行得很好。 在 iOS 上,如果仅安装一个应用程序,则可以正常工作,但如果安装了 dev test 应用程序,则点击动态链接始终打开测试应用程序。安装 devtestprod 时也是如此:打开 test

这是一个开发问题,与生产无关,因为用户永远不会安装测试或开发应用程序,但这让我们很恼火,因为我们必须一直卸载并重新安装 flavor 。

我们的动态链接具有以下格式(“<>”中的值是占位符):

Dev:  https://<app_id>.page.link/?link=http://dev.<mydomain>.com/reset?token=token1&apn=<mypackage>.dev&isi=<isiNumber1>&ibi=<mypackage>.dev
Test: https://<app_id>.page.link/?link=http://test.<mydomain>.com/reset?token=token2&apn=<mypackage>.test&isi=<isiNumber2>&ibi=<mypackage>.test
Prod: https://<app_id>.page.link/?link=http://<mydomain>.com/reset?token=token3&apn=<mypackage>&isi=<isiNumber3>&ibi=<mypackage>

对于我在真实设备上使用的所有 iOS 版本,即 iOS 11、12 和 13,该行为都是相同的。 我们使用 Flutter 1.9.1-hotfix6firebase_dynamic_links 0.5.0+1

知道这可能是由什么引起的吗?

最佳答案

Firebase 动态链接不支持对同一 Firebase 项目中包含的多个 iOS 应用/目标使用相同的网址前缀。

您可以通过多种方式解决此问题:

  1. 使用多个(子)域(如 already suggested by Janmenjaya )

  2. 使用自定义域

  3. 使用多个 Firebase 项目(如 already suggested by Aleksandr )

<小时/>

在 Android 上,它开箱即用,因为负责将路径与 list 文件中的特定应用程序进行匹配。在 iOS 上它不起作用,因为 Firebase 负责托管 apple-app-site-association 文件中的此类匹配。

<小时/>

如需了解更多信息,我已写 an extensive answer here .

关于ios - 在 iOS 上安装多种风格时,Firebase 动态链接无法打开正确的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59199247/

相关文章:

javascript - Firestore - 将数组传递给 arrayUnion()

database - 如何在Flutter中不同时间在Sqlite数据库中创建多个表

flutter - 如何在 Flutter 上生成具有不同随机起点的随机模糊渐变颜色背景?

iphone - 如何使用嵌入式 HTML 检查 youtube 视频是否存在

ios - MVC 中的“/.well-known/apple-app-site-association”错误

ios - 一个应用程序中的两个 RCTRootView 实例

android - 集成 firebase 通知后无法在设备中安装应用程序

ios - 编写流时遇到麻烦

javascript - 在转到下一个网页之前如何知道 Firebase 上的数据是否已保存?

flutter - Riverpod/Flutter 在消费者类中使用 showDialog