crashlytics 如何去混淆崩溃异常堆栈
How crashlytics de-obfuscates the crash exception stack
我已经为我的应用程序集成了 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
我已经为我的应用程序集成了 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