firebase 配置崩溃

Posted

技术标签:

【中文标题】firebase 配置崩溃【英文标题】:firebase configuration crash 【发布时间】:2020-01-17 15:55:29 【问题描述】:

执行 firebase.configure 时 Firebase 崩溃我在工作区中有多个目标

    #if Client
    FirebaseApp.configure()
    #else
    let filePath = Bundle.main.path(forResource: "GoogleService-Info-xxx", ofType: "plist")!
    let options = FirebaseOptions(contentsOfFile: filePath)
    FirebaseApp.configure(options: options!)
    #endif

我知道问题出在GoogleService-Info.plist 文件中。 我的Client 目标工作正常,但我的其他目标在FirebaseApp.configure(options: options!) 线上崩溃,我已经对其进行了调试,并且GoogleService-Info-xxx 的选项在那里。

崩溃日志:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[FIRInstanceIDCheckinPreferences preferencesFromKeychainContents:]:无法识别的选择器发送到类 0x1035b7d60”

【问题讨论】:

您不需要以编程方式添加选项。只需将GoogleService-Info.plist 放入Resources 组并调用FirebaseApp.configure() 考虑到有多个目标,Firebase 如何知道要配置哪个文件? 选择文件,在右侧inspector中,可以查看应用文件到哪些目标 ***.com/questions/42169907/… 【参考方案1】:

您不需要在配置期间明确指定选项。如Firebase Documentation 所示,您只需按照Step 3 中的说明正确导入配置文件后,只需在应用程序的application:didFinishLaunchingWithOptions: 方法中调用Firebase.configure()。如果您有多个构建目标,只需在将配置文件添加到项目后选择配置文件,然后在文件检查器中,选中您想要捆绑配置文件的目标旁边的框。

【讨论】:

我确实选中了目标框,但据我所知,firebase 会查找相同的文件名,而 xworckspace 不能有 2 个具有相同名称的文件,这会产生问题,例如 firebase 正在寻找xxxxx.plist,我不能有两个同名的文件 如果您在目标分配下检查了它们,Xcode 应该将相同的文件复制到两个包中。一个捆绑包是否嵌套在另一个捆绑包中?这是一个非常简单的过程,因此我需要您提供更多信息来提供帮助

以上是关于firebase 配置崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用选项配置 firebase 在 Xcode 11 和 Firebase 6.19 中崩溃

使用 Firebase 身份验证时应用程序崩溃,原因:“已配置默认应用程序。”

Firebase 运行时崩溃

由于 Firebase 初始化,App Delegate 崩溃

Firebase crashlytics 不显示崩溃

Firebase 崩溃报告上传错误