我在SO上读过多个帖子但找不到任何答案.我在这里有多个问题.我来形容一下:
>我对ProGuard了解不多,但根据我的信息,它在某种程度上混淆了Android代码.我的问题是我需要在某个地方启用它吗?我的Gradle文件中minifyEnabled为false.这会完全禁用ProGuard吗?
>要对Firebase上的崩溃进行反混淆处理并获得堆栈跟踪,我需要映射文件.我找不到任何地方.在app / build / outputs文件夹中,我只有
然后我在某处读到了proguard-rules.pro文件.它只是有一些评论而没有代码.然后我把它放在其中:-printmapping mapping.txt.然后再次生成签名APK,仍然没有成功.我错过了什么?
编辑1:如果我必须执行一些adb terminal命令,请描述步骤.我之前从未使用过Terminal.
解决方法
在gradle文件中,您必须专门将minifyEnabled选项设置为true.
这样可以进行混淆.通过这样做,它还会应用您在’proguard-rules.pro’文件中定义的模糊规则.
这样可以进行混淆.通过这样做,它还会应用您在’proguard-rules.pro’文件中定义的模糊规则.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } }
您可以通过应用相应的命令来打印映射和使用的种子(请注意,您需要完全解码/理解加密代码)
-printseeds obfuscation/seeds.txt
和
-printmapping obfuscation/mapping.txt
基本proguard文件的示例是:
-optimizationpasses 5 -dontpreverify -repackageclasses '' -allowaccessmodification -optimizations !code/simplification/arithmetic -keepattributes *Annotation* -verbose -dump obfuscation/class_files.txt -printseeds obfuscation/seeds.txt -printusage obfuscation/unused.txt -printmapping obfuscation/mapping.txt
问候,