[英]Disable mapping file (deob) upload on proguard build for Android Fabric/Crashlytics
[英]Crashlytics for Android: Disable automatic upload of mapping file via Gradle build
我想在我们的应用程序中使用crashlytics,但我不允许将它的proguard映射文件上传到外部世界(公司政策)。 是否可以使用Crashlytics但使用混淆的堆栈跟踪?
在io.fabric插件的文档中,我找到了这个选项:
ext.enableCrashlytics = false
但它会禁用整个报告,因此这不是我想要的。
他们有计划好的一切! ;-)根据这个链接 :“Crashlytics会自动对报告的堆栈跟踪进行去混淆”,所以你不必担心它。
只需使用ProGuard模糊您的应用程序,不要忘记更新ProGuard规则以避免发布应用程序意外崩溃,它应该没问题!
(帮助页面是关于Eclipse的,但是几天前我在Android Studio中使用了Crashlytics,它也运行正常)
编辑1 :根据第二个链接的最后 ,Crashlytics在构建期间自动上传映射文件。 看来你无法禁用它。
编辑2 : 也许如果你使用Ant,你可以自定义(至少一点)构建规则,这要归功于crashlytics_build.xml和crashlytics_build_base.xml文件。 但我不习惯Ant,甚至在那里,当我读取文件时,似乎无法禁用“映射文件自动上传”。 : - /
我在app gradle文件的末尾添加了这个:
tasks.whenTaskAdded {task ->
if(task.name.toLowerCase().contains("crashlytics")) {
task.enabled = false
}
}
构建日志:
> Task :app:crashlyticsStoreDeobsDebug SKIPPED
> Task :app:crashlyticsUploadDeobsDebug SKIPPED
请注意,这会禁用所有与崩解相关的任务。 默认情况下上传proguard映射文件是一种误解。 这就像上传私钥及其密码一样。 此文件只应存储在您的保管库中。 所以我想最好在默认情况下完全禁用所有任务:)
我只是想知道为什么这对开发人员来说不是一个大问题。
尝试禁用任务'crashlyticsUploadDeobs':
afterEvaluate {
for (Task task : project.tasks.matching { it.name.startsWith('crashlyticsUploadDeobs') }) {
task.enabled = false
}}
如果您当时没有互联网连接,那么将会发生什么样的映射将上传到崩溃关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.