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 崩溃不报告崩溃