如何验证在Unity构建中启用了proguard?

时间:2018-03-21 04:53:48

标签: unity3d proguard android-proguard

我在Plugins / Android中有一个名为mainTemplate的自定义gradle文件。 minifyEnabled设置为true。我需要验证proguard是否已实际启用。

1 个答案:

答案 0 :(得分:0)

我知道这个答案还很晚,但是我可以看到它得到了不错的浏览量(写作时为2k),所以我认为在这里留下答案是值得的。

我这样做的方法是简单地不使用ProGuard构建APK,并使用ProGuard构建APK,然后在Android Studio中进行比较

如何在有/没有ProGuard的情况下构建APK?

这是Unity中的默认情况,但只需将minify值设置为disable。

可以在编辑器中通过文件->构建设置->播放器设置来访问这些文件。在“检查器”窗口中,找到“发布设置”选项卡。

enter image description here

在上面的示例屏幕截图中,您可以看到我仅对ProGuard启用了发布版本,而没有对调试版本启用。我建议您这样做,以便您可以从调试版本中获取可行的崩溃日志。

如果您通过脚本进行构建,这将涉及在构建脚本中的某处包含以下行:

EditorUserBuildSettings.androidReleaseMinification = AndroidMinification.None;

EditorUserBuildSettings.androidReleaseMinification = AndroidMinification.Proguard;

一旦ProGuard被禁用,就进行构建。然后在启用它的情况下进行另一个构建。 (请注意,如果您按照上面的示例进行操作,则要在Unity中进行调试构建,应在构建按钮上方的构建设置窗口中选中“开发构建”选项。)

如何比较两个APK以查看是否启用了ProGuard?

我知道如何执行此操作的最简单方法是通过Android Studio。

打开Android Studio,然后点击“配置文件或调试APK”按钮。

enter image description here

一旦Android Studio完成了APK的导入,您将很快了解ProGuard是否能正常工作。例如,这是项目查看者的比较。

enter image description here enter image description here

很显然,由于混淆了类名而后者启用了ProGuard,而在DEX文件things that ProGuard does中却少了。