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

时间:2015-06-10 11:06:55

标签: android gradle crashlytics

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

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

ext.enableCrashlytics = false

但它会禁用整个报告,因此不是我想要的。

4 个答案:

答案 0 :(得分:3)

他们有计划好的一切! ;-)根据this link:“Crashlytics会自动对报告的堆栈跟踪进行反模糊处理”,因此您不必担心它。

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

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

编辑1 :根据this second link的最后,Crashlytics 在构建期间自动上传映射文件。看来你无法禁用它。

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

答案 1 :(得分:1)

我已在应用gradle文件的末尾添加了此内容:

tasks.whenTaskAdded {task ->
    if(task.name.toLowerCase().contains("crashlytics")) {
        task.enabled = false
    }
}

构建日志:

> Task :app:crashlyticsStoreDeobsDebug SKIPPED
> Task :app:crashlyticsUploadDeobsDebug SKIPPED

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

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

答案 2 :(得分:0)

如果您当时没有互联网连接,将会发生什么情况,地图会上传到崩溃地区。

答案 3 :(得分:0)

尝试禁用任务'crashlyticsUploadDeobs':

afterEvaluate {
    for (Task task : project.tasks.matching { it.name.startsWith('crashlyticsUploadDeobs') }) {
    task.enabled = false
}}