项目中多个 iOS 应用的 Firebase 动态链接
Firebase dynamic links for multiple iOS apps in project
我有一个包含两个 iOS 应用程序和两个 Android 应用程序的 firebase 项目。
这些应用程序需要共享数据库和用户,所以这种设计看起来很自然。
关于动态 links,Android 工作起来轻而易举,但我正在努力处理 iOS 部分。
基本动态 link 的设置很简单,困难(不可能?)的部分是根据 bundleID 创建动态 link 路由到正确的应用程序。
Firebase 自动生成 apple-app-site-association 文件,但所有应用程序的路径组件始终相同:["/*"]
{"applinks":
{"apps":[],
"details":[
{"appID":"XXXXX.com.test.app1","paths":["/*"]},
{"appID":"XXXXX.com.test.app2","paths":["/*"]}]
}
}
因此,第一个应用程序 app1 始终匹配并且所有深度 link 都指向此应用程序。
此时,我无法打开 link 到 app2 的动态 link。
此配置的文档不存在,即使此配置在 Android 个应用程序上完全可用。
我在这里遗漏了什么吗?
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 文件中重新排序应用程序优先级的请求。例如,开发人员有免费和付费应用程序,因此他们实际上希望动态 link 在两个应用程序中工作。
作为一种解决方法,如果在不需要时打开了 app1,则您可以使用 customURL 方案重新打开正确的 app2。这不是最好的用户体验。
如果您有更多问题,请随时告诉我,随时打开 Firebase 支持票以分享私人信息。
与 一样,这归结为问题,即 Firebase 动态链接不支持对多个 iOS apps/targets 使用相同的 URL 前缀同一个 Firebase 项目。
尽管有 多个解决方法:
使用多个(子)域
使用自定义域
使用多个 Firebase 项目
在 Android 上它开箱即用,因为 您 负责将路径与清单文件中的特定应用程序匹配。在 iOS 上它不起作用,因为 Firebase 负责托管 apple-app-site-association
文件中的此类匹配(正如您已经在问题中指出的那样).
如需更多信息,我写了an extensive answer here。
我有一个包含两个 iOS 应用程序和两个 Android 应用程序的 firebase 项目。 这些应用程序需要共享数据库和用户,所以这种设计看起来很自然。
关于动态 links,Android 工作起来轻而易举,但我正在努力处理 iOS 部分。
基本动态 link 的设置很简单,困难(不可能?)的部分是根据 bundleID 创建动态 link 路由到正确的应用程序。
Firebase 自动生成 apple-app-site-association 文件,但所有应用程序的路径组件始终相同:["/*"]
{"applinks":
{"apps":[],
"details":[
{"appID":"XXXXX.com.test.app1","paths":["/*"]},
{"appID":"XXXXX.com.test.app2","paths":["/*"]}]
}
}
因此,第一个应用程序 app1 始终匹配并且所有深度 link 都指向此应用程序。
此时,我无法打开 link 到 app2 的动态 link。
此配置的文档不存在,即使此配置在 Android 个应用程序上完全可用。
我在这里遗漏了什么吗?
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 文件中重新排序应用程序优先级的请求。例如,开发人员有免费和付费应用程序,因此他们实际上希望动态 link 在两个应用程序中工作。
作为一种解决方法,如果在不需要时打开了 app1,则您可以使用 customURL 方案重新打开正确的 app2。这不是最好的用户体验。
如果您有更多问题,请随时告诉我,随时打开 Firebase 支持票以分享私人信息。
与
尽管有 多个解决方法:
使用多个(子)域
使用自定义域
使用多个 Firebase 项目
在 Android 上它开箱即用,因为 您 负责将路径与清单文件中的特定应用程序匹配。在 iOS 上它不起作用,因为 Firebase 负责托管 apple-app-site-association
文件中的此类匹配(正如您已经在问题中指出的那样).
如需更多信息,我写了an extensive answer here。