Firebase 运行时崩溃

Posted

技术标签:

【中文标题】Firebase 运行时崩溃【英文标题】:Firebase runtime crash 【发布时间】:2017-03-02 12:55:24 【问题描述】:

我已将 Firebase SDK 手动添加到我的项目中(由于配置问题,无法使用 cocoapods)。

使用以下框架:

FirebaseCore.framework        
FirebaseInstanceID.framework
Firebasemessageing.framework

AppDelegate 我已经导入了以下内容:

#import "Firebase.h
#import <FirebaseInstanceID/FirebaseInstanceID.h>
#import <FirebaseMessaging/FirebaseMessaging.h>

然后我引用 API:

[FIRApp configure];

当我构建项目时一切都很好。但是,一旦应用程序点击 Firebase SDK API - 我就会遇到以下崩溃:

控制台中的错误消息:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“+[NSData gtm_dataByGzippingData:error:]: unrecognized selector sent to class 0x10553f168”

我已经添加了我能想到的所有必需的框架,但仍然遇到这个问题。

【问题讨论】:

【参考方案1】:

确保您已将 GoogleToolboxForMac 库添加到您的项目中,并且您已将 -ObjC 添加到构建设置中的其他链接器选项中。

【讨论】:

谢谢 - 就是这样。但是我现在面临与 FirebaseSDK 相关的另一次崩溃。 但是如果你添加了 objc 标志,那么你就不能再编译像 facebook 这样的其他库了 :( 有什么想法吗? @lok​​i 一种解决方法是在未执行的代码中添加对 [NSData gtm_dataByGzippingData:error:] 的显式调用,以便引用可见并且不会被链接器丢弃。跨度> 感谢保罗,但是我发现了另一种更简单的方法:使用 -force_load 而不是 -ObjC @Tander,您如何手动添加 GoogleToolboxForMac,我收到 not found 错误。有什么建议吗?

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

当使用Firebase和onesignal时,应用程序在第一次运行时崩溃

Android Gradle:所有 gms/firebase 库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)

将 AdMob 添加到 Firebase 项目时崩溃

在运行时禁用/启用 Firebase Crashlytics

尝试在后台/前台运行时应用程序崩溃但适用于其他手机

调用 `FIRApp.configure()` 时应用程序在首次运行时崩溃