适用于 Android 的 Crashlytics:禁用通过 Gradle 构建自动上传映射文件

Zbi*_*ski 5 android gradle crashlytics

我想在我们的应用程序中使用 crashlytics,但我不允许将它的 proguard 映射文件上传到外界的任何地方(公司政策)。是否可以使用 Crashlytics 但使用混淆的堆栈跟踪?

io.fabric插件的文档中,我找到了这个选项:

ext.enableCrashlytics = false
Run Code Online (Sandbox Code Playgroud)

但它禁用了整个报告,所以这不是我想要的。

plu*_*ind 11

我在应用程序 gradle 文件的末尾添加了这个:

tasks.whenTaskAdded {task ->
    if(task.name.toLowerCase().contains("crashlytics")) {
        task.enabled = false
    }
}
Run Code Online (Sandbox Code Playgroud)

构建日志:

> Task :app:crashlyticsStoreDeobsDebug SKIPPED
> Task :app:crashlyticsUploadDeobsDebug SKIPPED
Run Code Online (Sandbox Code Playgroud)

请注意,这会禁用所有与 crashlytics 相关的任务。默认上传 proguard 映射文件是一种误解。这就像上传私钥及其密码。此文件应仅存储在您的保管库中。所以我想默认情况下最好完全禁用他们的所有任务:)

我只是想知道为什么这对开发人员来说不是一个大问题。


PAD*_*PAD 2

他们已经计划好了一切!;-) 根据此链接:“Crashlytics 自动为您的报告取消混淆堆栈跟踪”,因此您不必担心它。

只需使用 ProGuard 混淆您的应用程序,不要忘记更新 ProGuard 规则以避免发布应用程序时发生意外崩溃,应该没问题!

(帮助页面是关于 Eclipse 的,但几天前我在 Android Studio 中使用了 Crashlytics,它也工作得很好)

编辑1:根据第二个链接的最后,Crashlytics在构建过程中自动上传映射文件。看来您无法禁用此功能。

编辑2也许如果您使用Ant,您将能够自定义(至少一点)构建规则,这要归功于crashlytics_build.xmlcrashlytics_build_base.xml文件。但我不习惯Ant,即使在那里,当我读取文件时,似乎也无法禁用“映射文件自动上传”。:-/

  • 我们设法这样做:`task renameMappingFile << { file("build/outputs/mapping").renameTo(file("build/outputs/mapping-internal")) } afterEvaluate { for (Task task : project. tasks.matching { it.name.startsWith('crashlyticsStoreDeobs') }) { task.dependsOn renameMappingFile } }` (3认同)

归档时间:

查看次数:

3714 次

最近记录:

6 年,10 月 前