[英]How can I obfuscate only com.foo.* but excluding com.foo.bar.*? (Proguard)
我试过了:
-keep class !com.foo.** { *; }
-keep class com.foo.bar.** { *; }
但是它混淆了com.foo。*(我不想要)以外的其他类
我也尝试过:
-keep class !com.foo.**, com.foo.bar.** { *; }
它无法解析。
根据您的描述,我了解到您希望将所有内容保留在com.foo.bar
包(+子包?)中。 您可以通过以下规则来实现:
-keep class com.foo.bar.** { *; }
**
模式也将与子包匹配,如果只想使用当前包,请使用*
代替。
如果您使用这样的规则:
-keep class !com.foo.** { *; }
您实际上会保留除com.foo。**之外的所有内容,因此您应谨慎使用排除模式。 此后始终至少包括一个包含模式。 排除模式应更具体地作为包含模式,请参见下文。
该规则应正确解析(仅对其进行了测试),但不起作用,因为ProGuard在找到匹配项后将停止评估该规则:
-keep class !com.foo.**, com.foo.bar.** { *; }
排除模式!com.foo.**
将匹配com.foo和子包中的所有内容,因此也将匹配com.foo.bar。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.