新的 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 您直接在debug
或release
构建类型中使用它以上是关于新的 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 版本