我想在我们的应用中使用crashlytics,但我不允许将它的proguard映射文件上传到外部世界(公司政策)。是否可以使用Crashlytics但使用混淆的堆栈跟踪?
在 io.fabric 插件的文档中,我找到了这个选项:
ext.enableCrashlytics = false
但它会禁用整个报告,因此不是我想要的。
答案 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
}}