我有一个包含两个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应用程序上完全正常运行。
我在这里遗漏了什么吗?
答案 0 :(得分:2)
Firebase动态链接对同一项目中的多个iOS应用程序的支持有限。我们计划改善这种支持,但在日期上没有ETA,可能是2018年第一季度。
以下是一个项目中几个iOS App的Firebase动态链接设置的最典型示例之一:https://photos.app.goo.gl/apple-app-site-association
如果iOS设备上未安装app1,您仍然可以打开app2。
我相信您可以通过删除app1并将app1重新添加到项目中来更改apple-app-site-association中应用的顺序。
我们收到更多关于允许在apple-app-site-association文件中重新订购App优先级的请求。例如,开发人员拥有免费且付费的应用程序,因此他们实际上希望动态链接在两个应用程序中都能正常工作。
作为一种解决方法,如果在不需要时打开app1,您可以使用customURL方案重新打开正确的app2。这不是最好的用户体验。
如果您有更多问题,请与我们联系,随时打开Firebase支持服务单以分享隐私信息。
答案 1 :(得分:1)
与Oleksiy Ivanov has already pointed out一样,这可以归结为以下问题:Firebase动态链接不支持对同一Firebase项目中包含的多个iOS应用程序/目标使用相同的URL前缀。
尽管有多种解决方法:
使用多个(子)域
使用自定义域
使用多个Firebase项目
在Android上它是开箱即用的,因为 you 负责将清单文件中特定应用的路径进行匹配。在iOS上,此操作不起作用,因为 Firebase 负责托管的apple-app-site-association
文件中的此类匹配(如您在问题中已经指出的那样)。
有关更多信息,我写了an extensive answer here。