问题描述
我已经为我的应用集成了 crashlytics,但直到今天才启用 proguard。
我如下配置了我的项目:
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
然后我修改了代码以强制崩溃,然后我转到 Crashlytics 控制台查看崩溃异常堆栈的样子。
我希望异常堆栈像 a.b.c.d.e.f(:232)
这样混淆,但实际上我可以看到去混淆的堆栈,清除类名称和方法名称。
我知道发布 apk 时我需要上传混淆映射文件,以便 Crashlytics 知道如何去混淆。 但是对于我的场景,我从来没有为我的开发版本上传这样的映射文件(直接从 Android Studio 运行应用程序),我还从 Crashlytics 获得了去混淆的异常堆栈(在我的 Android Studio 中不是这种情况,例外是混淆)
我很好奇 Crashlytics 如何为我的开发版本去混淆它。
解决方法
在您构建应用时,Crashlytics 插件会自动将映射文件上传到 Crashlytics 服务。
https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=android