项目中多个 iOS 应用的 Firebase 动态链接

Posted

技术标签:

【中文标题】项目中多个 iOS 应用的 Firebase 动态链接【英文标题】:Firebase dynamic links for multiple iOS apps in project 【发布时间】:2017-11-06 20:26:38 【问题描述】:

我有一个包含两个 ios 应用和两个 android 应用的 firebase 项目。 这些应用需要共享数据库和用户,所以这种设计看起来很自然。

关于动态链接,Android 运行起来轻而易举,但我在 iOS 部分苦苦挣扎。

基本的动态链接设置很容易,困难的(不可能?)部分是根据 bundleID 制作指向正确应用的动态链接。

Firebase 会自动生成 apple-app-site-association 文件,但所有应用的路径组件始终相同:["/*"]

"applinks":
     "apps":[],
      "details":[
          "appID":"XXXXX.com.test.app1","paths":["/*"], 
          "appID":"XXXXX.com.test.app2","paths":["/*"]]
     

因此,第一个应用 app1 始终匹配,并且所有深层链接都指向此应用。

此时,我无法打开到 app2 的动态链接。

此配置的文档不存在,即使它在 Android 应用上完全可用。

我在这里错过了什么吗?

【问题讨论】:

这能回答你的问题吗? Firebase Dynamic-Links is not working for different target in same project in iOS 【参考方案1】:

Firebase 动态链接对同一项目中的多个 iOS 应用的支持有限。我们正计划改进这种支持,但没有预计日期,可能是 2018 年第一季度。

这是在一个项目中为多个 iOS 应用设置 Firebase 动态链接的最典型示例之一:https://photos.app.goo.gl/apple-app-site-association

如果 iOS 设备上未安装 app1,您仍然应该能够打开 app2。

我相信您可以通过删除 app1 并将 app1 重新添加到项目中来更改 apple-app-site-association 中应用程序的顺序。

我们确实收到了更多关于允许在 apple-app-site-association 文件中重新排序应用程序优先级的请求。例如,开发者有免费和付费的 App,所以他们实际上希望动态链接在这两个 App 中都可以工作。

作为一种解决方法,您可以使用 customURL 方案重新打开正确的 app2,如果 app1 在不需要时打开了。这不是最好的用户体验。

如果您有更多问题,请告诉我,请随时打开 Firebase 支持票以分享私人信息。

【讨论】:

这里有更新吗? 2018 年第一季度即将结束,所以我想知道这是否仍在雷达上 :) 谢谢 @xaphod 嗨,我离开了 Firebase 团队,所以没有参与路线图。我建议您打开 Firebase 支持票并描述您的用例。 截至今天,我们处于 2020 年第一季度,有人知道是否有任何解决方案吗? 2021 尚不支持 ;(【参考方案2】:

作为Oleksiy Ivanov has already pointed out,这归结为问题,Firebase 动态链接不支持对同一 Firebase 项目中包含的多个 iOS 应用/目标使用相同的 URL 前缀。


多种解决方法

    使用多个(子)域

    使用自定义域

    使用多个 Firebase 项目


在 Android 上,它开箱即用,因为 负责将路径与清单文件中的特定应用程序进行匹配。在 iOS 上它不起作用,因为 Firebase 负责托管 apple-app-site-association 文件中的此类匹配(正如您在问题中已经指出的那样)。


如需更多信息,我已写信给an extensive answer here。

【讨论】:

以上是关于项目中多个 iOS 应用的 Firebase 动态链接的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 动态链接在 iOS 14 上的 Safari 中留下空白页面

如何在 Prod for iOS 中测试/验证 Firebase 动态链接推荐?

Firebase 动态链接未打开 iOS 应用程序

iOS 应用程序:Firebase 动态链接不适用于最新的 Pod 文件

冷启动 iOS 14 时未处理 iOS Firebase 动态链接

应用不在后台时无法识别 Firebase 动态链接 (iOS)