我正在使用 Proguard 来混淆我的代码,我需要保留每个第三方库,例如:
-keep class com.layer.** -dontwarn com.layer.** -keep class com.twitter.** -keep class android.support.** -keep class com.crashlytics.** { *; } -dontwarn com.crashlytics.** ...
And whenever I add a new third party library, I need to check its package name and add it to my proguard config file, or the app may crashes.
Can't I write the rule just like this? I don't care about codes that's not mine.
-keep class !(my.package.name.**)
-dontwarn !(my.package.name.**)
谢谢!
最佳答案
要将除类之外的所有内容保留在您自己的包中,您可以使用您已经指出的规则(不包括括号):
-keep class !my.package.name.** { *; }
这将隐式保留其他所有内容。
您还可以另外添加 -保持如果需要,您的类(class)规则。
的规则-dontwarn 应该以类似的方式工作:
-dontwarn !my.package.name.**,**
您也可以添加类似的 -dontnote 如果需要,规则。
关于Proguard:如何保留除特定条件外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421910/