使用firebase iOS swift创建具有相同捆绑ID的多个环境?

Posted

技术标签:

【中文标题】使用firebase iOS swift创建具有相同捆绑ID的多个环境?【英文标题】:Create multiple environment with same bundle id using firebase iOS swift? 【发布时间】:2019-03-21 11:45:21 【问题描述】:

我们正在研究用于崩溃报告的结构。我们有四个环境 debug、dev、prod 和 staging。因此,基于环境,我们在结构设置中创建了组织并获取 API 密钥。这样我们就可以将 API 密钥用于具有相同 bundle id 的不同环境。

对于 Fabric,我已点击此链接:Fabric Crashlytics multiple environments for ios app

但现在我们必须将结构移动到 Firebase。我们已经为我的一个环境创建了项目。 但我想在 firebase 中创建多个具有相同包 ID 的环境。谁能给我一个想法?

参考链接:在此链接中,他们为不同的捆绑 ID 创建了开发和生产。 https://medium.com/bam-tech/setup-firebase-on-ios-android-with-multiple-environments-ad4e7ef35607

【问题讨论】:

您是在问如何让不同的 Xcode 项目访问相同的 Firebase 数据? 没有。在 Fabric 中,我们可以添加具有相同捆绑 ID 的不同组织(调试、开发、生产)。是否可以在 firebse 中使用相同的 bundle id 进行调试、开发和生产? 如果我说我有三个项目环境,它们被称为调试、开发和生产,它们都使用相同的包 ID,每个都可以访问完全不同的数据集进行测试或者都可以访问同一个数据集,是否满足要求? 正是杰伊。我想在暂存构建中放置暂存崩溃,而生产崩溃仅在生产构建中。但是在firebase中我无法为此创建单独的密钥。 【参考方案1】:

在 Firebase 中,您可以使用多个项目来支持不同的环境。

Firebase 控制台不会阻止您创建具有相同捆绑 ID 的应用的多个项目(在 Android 上围绕 SHA1 键执行此操作时会有些微妙之处,但不适用于 iOS)。

是否要使用相同的捆绑 ID 由您决定:

    如果您可以在设备上测试时覆盖 prod 应用程序,请使用相同的捆绑包 ID

    如果您想并行测试,请使用不同的捆绑包 ID(例如附加“.staging”或“.test”)

请注意,由于您使用的是两个不同的 Firebase 项目,因此您必须管理不同的 GoogleService-Info.plist 文件,并且在部署到 App Store 时要格外小心 - 您不希望发布指向您的 staging 的应用或测试环境!

补充阅读:https://firebase.google.com/docs/projects/multiprojects

【讨论】:

选项 #1 / 使用相同的捆绑包创建一个新的 firebase 项目对我有用

以上是关于使用firebase iOS swift创建具有相同捆绑ID的多个环境?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase创建的模型在swift中具有可选值

使用 Appdelegate 在 IOS Swift 中为所有视图控制器创建 Firebase CRUD 方法

在 Swift 中的 Firebase 实时数据库观察方法中具有异步函数的 DispatchGroup

如何使用 Swift 在 Firebase 中使用相同的关键字存储不同数据的多个实例?

swift 4如何将firebase Crashlytics用于多个标识符IOS的多个捆绑标识符

Swift Firebase - 将估计的 ServerTimestamp 与可编码的自定义对象相结合