混淆 keep 规则过于暴力
drakeet opened this issue · 3 comments
drakeet commented
你好,感谢分享和开源这个项目,它看起来很棒!
不过我看到在 README 文档中写到需要 keep 一系列 okhttp、retrofit 等相关代码,而且都是全量 keep **
,过于暴力,实际上,这些 keep 很多都是不必要的,如果是 aar 项目,大多会有 consumerProguard
,它们会自动采纳开源库作者内置的 Proguard rules,如果全量 keep 起来,会导致 minify 工具无法正常排除无用代码最终使得安装包体积增大。
# retrofit2
-dontwarn retrofit2.**
-keep class retrofit2.** { *; } # <- 不应该
-keepattributes Signature
-keepattributes Exceptions
-dontwarn org.robovm.**
-keep class org.robovm.** { *; } # <- 不应该
# okhttp3
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;} # <- 不应该
-keep class okhttp3.** { *;} # <- 不应该
-keep class okio.** { *;} # <- 不应该
-dontwarn sun.security.**
-keep class sun.security.** { *;}
-dontwarn okio.**
-dontwarn okhttp3.**
# rxjava
-dontwarn rx.**
-keep class rx.** { *; } # <- 不应该
如果可以,请修改这部分内容,以免产生误导 :) 再次表示感谢!
yale8848 commented
谢谢你提出的宝贵意见,因为工程中用到了反射,为了安全就基本都keep了,后续我会重新整理一份。
drakeet commented
因为 RxJava 和 OKHttp 都属于大型库,全量 keep 将导致安装包大好几 MB,代价很大。
yale8848 commented
我重新把混淆整理了一下