项目中多个 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 动态链接推荐?
iOS 应用程序:Firebase 动态链接不适用于最新的 Pod 文件