Proguard:如何保留除特定条件外的所有内容?
Proguard: How to keep everything except specific condition?
我正在使用 Proguard 混淆我的代码,我需要保留每个第三方库,例如:
-keep class com.layer.**
-dontwarn com.layer.**
-keep class com.twitter.**
-keep class android.support.**
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
...
每当我添加一个新的第三方库时,我需要检查它的包名并将它添加到我的混淆器配置文件中,否则应用程序可能会崩溃。
规则不能这么写吗?我不关心不是我的代码。
-keep class !(my.package.name.**)
-dontwarn !(my.package.name.**)
谢谢!
要将 类 以外的所有内容保留在您自己的包中,您可以使用您已经指出的规则(不包括括号):
-keep class !my.package.name.** { *; }
这将隐式保留所有其他内容。
如果需要,您仍然可以为 类 添加额外的 -keep 规则。
-dontwarn 的规则应该以类似的方式工作:
-dontwarn !my.package.name.**,**
如果需要,您还可以添加类似的 -dontnote 规则。
我正在使用 Proguard 混淆我的代码,我需要保留每个第三方库,例如:
-keep class com.layer.** -dontwarn com.layer.** -keep class com.twitter.** -keep class android.support.** -keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.** ...
每当我添加一个新的第三方库时,我需要检查它的包名并将它添加到我的混淆器配置文件中,否则应用程序可能会崩溃。
规则不能这么写吗?我不关心不是我的代码。
-keep class !(my.package.name.**)
-dontwarn !(my.package.name.**)
谢谢!
要将 类 以外的所有内容保留在您自己的包中,您可以使用您已经指出的规则(不包括括号):
-keep class !my.package.name.** { *; }
这将隐式保留所有其他内容。 如果需要,您仍然可以为 类 添加额外的 -keep 规则。
-dontwarn 的规则应该以类似的方式工作:
-dontwarn !my.package.name.**,**
如果需要,您还可以添加类似的 -dontnote 规则。