【问题标题】:Firebase Crash pod breaks device rotation on iOSFirebase Crash pod 中断了 iOS 上的设备旋转
【发布时间】:2017-03-19 20:33:49
【问题描述】:

按照他们的最佳实践指导配置 Firebase,并使用“Firebase/Crash”pod,会在使用面向 iOS 10.1 的 Swift 3 在 Xcode 8.1 中创建的干净 iOS 项目中中断设备轮换。

复制步骤

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

配置 Firebase

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

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

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

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

问题

  1. 为什么以这种方式配置 Firebase 会破坏设备轮换?
  2. 如果我想按照最佳做法指南中所述的方式同时使用“Firebase/Crash”和“Firebase/Database”并启用离线持久性,那么在不中断设备轮换的情况下配置 Firebase 的合适方法是什么?

看来at least one other user也遇到了同样的问题。

【问题讨论】:

    标签: ios swift firebase firebase-crash-reporting


    【解决方案1】:

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

    current documentation 声明 Firebase“通常”是使用这种方法配置的。

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

    【讨论】:

    • 我不确定你是否回答了这个问题!?我遇到了与此相同的问题...我按照 Firebase 站点上的步骤操作,但我的设备旋转仍然无法正常工作!!!
    • 当我按照 Firebase 支持的建议在 application(_:didFinishLaunchingWithOptions:) 中配置 Firebase 而不是覆盖 init() 时,问题就消失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    相关资源
    最近更新 更多