FirebaseCrashlytics 不会为 iOS 模拟器编译

Posted

技术标签:

【中文标题】FirebaseCrashlytics 不会为 iOS 模拟器编译【英文标题】:FirebaseCrashlytics won't compile for iOS simulator 【发布时间】:2020-06-10 23:40:37 【问题描述】:

我正在尝试集成 FirebaseCrashlytics 以替换 Fabric / Crashlytics。 到目前为止,我已经按照文档中的步骤进行了操作,并且这一切似乎都在设备上运行。我能够模拟崩溃并查看 firebase 中的崩溃。问题是当我尝试为模拟器构建时,它不会编译。有谁知道如何解决这个问题?

我使用的是 Xcode 11.5 通过本文档通过 cocoapods 安装: https://firebase.google.com/docs/crashlytics/upgrade-sdk

【问题讨论】:

您关注哪些文档以及如何安装?环境缺少链接 GoogleUtilities 库。 @PaulBeusterien 我正在通过 Cocoapods pod 'Firebase/Analytics' pod 'Firebase/Crashlytics' 安装版本是:Firebase (6.26.0) FirebaseAnalytics (6.6.0) FirebaseAnalyticsInterop (1.5.0) FirebaseCore (6.7.2) FirebaseCoreDiagnostics (1.3.0) FirebaseCoreDiagnosticsInterop (1.2.0) FirebaseCrashlytics (4.1.1) FirebaseInstallations (1.3.0) GoogleAppMeasurement (6.6.0) GoogleDataTransport (6.2.1) GoogleDataTransportCCTSupport (3.1.0) GoogleUtilities ( 6.6.0) PromisesObjC (1.2.9) nanopb (1.30905.0) 文档:firebase.google.com/docs/crashlytics/upgrade-sdk 【参考方案1】:

所以,我尝试通过 Carthage 进行集成,得到了相同的结果。我确实注意到这些错误仅在我尝试使用时出现

Crashlytics.crashlytics().setUserID(userIdentifier)

或一些Crashlytics.crashlytics() 函数调用。

我确实让程序通过#if NDEBUG 指令成功编译并在模拟器上启动。所以基本上,每当我需要使用 Crashlytics.crashlytics() 时,我都会把它放在 #if NDEBUG 中,它就可以工作了。

例如:

#if NDEBUG
Crashlytics.crashlytics().setCustomValue("someValue", forKey: "someKey")
#endif

【讨论】:

以上是关于FirebaseCrashlytics 不会为 iOS 模拟器编译的主要内容,如果未能解决你的问题,请参考以下文章

如果我将 FirebaseCrashlytics 与 Thread.UncaughtExceptionHandler 一起使用,则不会报告崩溃

从 Appcenter 创建构建时,FirebaseCrashlytics 崩溃不报告崩溃

Firebase Crashlytics 不会激活

Firebase crashlytics 不会自动上传dysm

如何强制使firebasecrashlytics崩溃?

iOS 和 FirebaseCrashlytics