Firebase崩溃pod会破坏iOS上的设备轮换

时间:2016-11-06 12:20:12

标签: ios swift firebase firebase-crash-reporting

按照最佳做法指南配置Firebase,并使用“Firebase / Crash”窗格,使用面向iOS 10.1的Swift 3在Xcode 8.1中创建的干净iOS项目中打破设备轮换。

重现的步骤

  1. 创建一个新的iOS项目(例如,使用iOS模板“选项卡式应用程序”)。
  2. 将“Firebase / Core”和“Firebase / Crash”窗格添加到您的podfile,安装窗格,然后打开新创建的项目工作区文件。
  3. 将相应的GoogleService-Info.plist文件添加到您的项目中。
  4. 覆盖应用委托中的init()以配置Firebase,如下所示。
  5. 观察您的应用目标的部署信息已在“设备方向”下为“纵向”,“横向左侧”和“横向右侧”勾选了框。
  6. 在模拟器中运行应用程序,然后向左或向右旋转。
  7. 配置Firebase

    应在AppDelegate.swift中配置Firebase,如下所示:

    override init() {
        super.init()
        FIRApp.configure() // This line breaks rotation if "Firebase/Crash" is installed.
    }
    

    Firebase的“best practices”iOS指南指出,如果未通过覆盖应用委托中的init()来配置Firebase,则“可能会出错”。这意味着在application(_:didFinishLaunchingWithOptions:)中配置Firebase是一个编程错误。但是,如果采用后一种方法,则设备旋转按预期运行。

    Other SO answers还建议遵循Firebase的最佳做法指南。

    问题

    1. 为什么以这种方式配置Firebase会破坏设备轮换?
    2. 如果我想同时使用“最佳做法指南”中描述的方式启用离线持久性的“Firebase / Crash”和“Firebase /数据库”,那么在不破坏设备轮换的情况下配置Firebase的适当方法是什么?
    3. at least one other user似乎遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

Firebase支持已经建议,配置Firebase for iOS的适当方法是application:didFinishLaunchingWithOptions:“这是一种正确的方法,您不应该遇到任何问题。”

current documentation表示使用此方法“通常”配置Firebase。

他们还建议在内部讨论iOS的“best practices”指南,以确定它是“仍然相关还是需要更新”。