新的 Firebase Crashlytics 在调试模式下禁用

Posted

技术标签:

【中文标题】新的 Firebase Crashlytics 在调试模式下禁用【英文标题】:New Firebase Crashlytics disable in debug mode 【发布时间】:2020-10-05 17:29:33 【问题描述】:

我最近从 Fabric 1 切换到新的 Firebase Crashlytics,但我找不到在调试模式下禁用 Crashlytics 的替代方法。

面料:

val crashlytics = Crashlytics.Builder().core(CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build()
Fabric.with(this, crashlytics, Answers())

有人知道答案吗?我已经看到FirebaseCrashlytics 类现在在内部设置了它的核心。我试过FirebaseCrashlytics(CrashlyticsCore.??).getInstance(),但是那种构造函数不起作用。

还有CrashlyticsCore 类不再有.Builder() 可用

【问题讨论】:

【参考方案1】:

要以编程方式在应用程序类中使用以下代码

FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)
//enabled only for signed builds

通过在运行时调用 Crashlytics 数据收集覆盖来为选定用户启用收集。覆盖值在您的应用程序启动期间保持不变,因此 Crashlytics 可以自动收集报告以供将来启动该应用程序实例。要选择退出自动崩溃报告,请将 false 作为覆盖值传递。设置为 false 时,新值在应用下次运行之前不会应用。

这里是文档链接https://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=android#enable-reporting

【讨论】:

要在调试模式下禁用崩溃日志,您必须传递!BuildConfig.DEBUG。仅对签名版本启用 FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG); 所以该值将是 false 并且它只会记录发布版本的崩溃。 由于默认启用 Crashlytics,我更喜欢这个:if (BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(false) 【参考方案2】:

我前段时间试过一次,它对我有用。将此添加到build.gradle

android 
  buildTypes 
     debug 
        manifestPlaceholders = [crashlyticsCollectionEnabled:"false"]
        ...
     

    release 
        manifestPlaceholders = [crashlyticsCollectionEnabled:"true"]
        ...
    
  

然后在 manifest 中设置这个属性。

<meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="$crashlyticsCollectionEnabled" />

如果你也手动登录,那么你可以在运行时使用这样的东西:-

FirebaseCrashlytics.getInstance().recordException(RuntimeException("Invalidtoken"))

还有Check this out。

【讨论】:

添加清单占位符代替全部替换的更安全方法是:manifestPlaceholders.firebasecrashlyticsCollectionEnabled = false @sosite 你能告诉我应该在哪个标签中添加这一行吗? @Tanjimahmed 您直接在debugrelease 构建类型中使用它

以上是关于新的 Firebase Crashlytics 在调试模式下禁用的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 新的 Firebase Crashlytics (4.0.0-beta.5) - dSYM 上传失败

Firebase Crashlytics 作为 pod 依赖项

firebase_crashlytics 已解析为 2.2.1,这取决于 Firebase/Crashlytics (= 8.6.0)

如何在 iOS 上使用 Firebase 以编程方式获取 Crashlytics 版本

在 IOS 上设置 Firebase Crashlytics

如何在 Firebase Crashlytics 中查看崩溃的详细信息?