将 ProGuard 设置为仅混淆我的应用程序包

Posted

技术标签:

【中文标题】将 ProGuard 设置为仅混淆我的应用程序包【英文标题】:Setting ProGuard to obfuscate only my app's package 【发布时间】:2016-09-22 20:43:22 【问题描述】:

尝试使用 ProGuard 进行混淆,但出现 3rd 方库错误,因此我将每个包一一排除:

   -keepclassmembers class android.** *;
   -keepclassmembers interface android.** *;

   -keepclassmembers class com.google.** *;
   -keepclassmembers interface com.google.** *;

有没有办法只将我的包名列入白名单?

com.dht.github.myApp

【问题讨论】:

【参考方案1】:

根据您的代码,您只是保留班级成员而不是整个班级。 使用它来保持课程不变。

-keep class com.google.** *;

-keep interface com.google.** *;

您也可以使用此行仅混淆您自己的类并保留其他所有内容。

-keep class !com.yourpackage.**,!com.youranotherpackage.** *;

【讨论】:

好吧,我想我可以用它来避免处理每个 3rd 方库的 proguard 规则,但它们仍然崩溃..

以上是关于将 ProGuard 设置为仅混淆我的应用程序包的主要内容,如果未能解决你的问题,请参考以下文章

使用 proguard 的 Android 混淆应用程序会不断混淆库 jar - 是吗?

是否添加“ minifyEnabled true”和“ proguard-android-optimize.txt”混淆了sqlite数据库并使其与以前的版本不兼容?

不要混淆 proguard 中的硬编码字符串

如何使用 proguard 混淆选择性课程?

为啥 proguard 不混淆方法体?

使用 Proguard 混淆 ActionBarSherlock