關於proguard配置文件的一個笨辦法,一次性排除大部分外部依賴

關於proguard這個東西,感覺做的一般般,很多配置很不人性化,容錯性差,像個事媽一樣總報錯,屁大點事就把整個流程掛掉,搞得學習成本很高,實在難以稱道。

比如,proguard配置中的keep class 和dontwarn就很變扭,爲什麼不提供一個only include class或者only warn之類的配置,其實針對大多數app,我們只需要對我們關心的一些類進行混淆就可以了,所以這不是一個排除或者取非的問題。由於這一點,導致我們每次要寫一大堆的keep class 和dontwarn,本人分享一種寫法(雖然是傻瓜式的笨辦法),一種思路,可以一次性排除大部分外部依賴。

思路大概是,如果我們只需要對com.yoyo.brucesharp.app這個包下的類進行proguard,那麼可以把其他包名的一律排除掉就可以了,於是就有了下面的模板(寫的不是很嚴謹,重在提供解決問題的思路,大家可以拷走方便備用)。

####外部庫
-keep class a** { *; }
-keep class b** { *; }
##c開頭不排除
-keep class d** { *; }
-keep class e** { *; }
-keep class f** { *; }
-keep class g** { *; }
-keep class h** { *; }
-keep class i** { *; }
-keep class j** { *; }
-keep class k** { *; }
-keep class l** { *; }
-keep class m** { *; }
-keep class n** { *; }
-keep class o** { *; }
-keep class p** { *; }
-keep class q** { *; }
-keep class r** { *; }
-keep class s** { *; }
-keep class t** { *; }
-keep class u** { *; }
-keep class v** { *; }
-keep class w** { *; }
-keep class x** { *; }
-keep class y** { *; }
-keep class z** { *; }
-keep class com.a** { *; }
-keep class com.b** { *; }
-keep class com.c** { *; }
-keep class com.d** { *; }
-keep class com.e** { *; }
-keep class com.f** { *; }
-keep class com.g** { *; }
-keep class com.h** { *; }
-keep class com.i** { *; }
-keep class com.j** { *; }
-keep class com.k** { *; }
-keep class com.l** { *; }
-keep class com.m** { *; }
-keep class com.n** { *; }
-keep class com.o** { *; }
-keep class com.p** { *; }
-keep class com.q** { *; }
-keep class com.r** { *; }
-keep class com.s** { *; }
-keep class com.y** { *; }
-keep class com.u** { *; }
-keep class com.v** { *; }
-keep class com.w** { *; }
-keep class com.x** { *; }
#com.y開頭不排除
-keep class com.z** { *; }
#單獨排除cn開頭的
-keep class cn** { *; }

####dontwarn
-dontwarn a**
-dontwarn b**
-dontwarn d**
-dontwarn e**
-dontwarn f**
-dontwarn g**
-dontwarn h**
-dontwarn i**
-dontwarn j**
-dontwarn k**
-dontwarn l**
-dontwarn m**
-dontwarn n**
-dontwarn o**
-dontwarn p**
-dontwarn q**
-dontwarn r**
-dontwarn s**
-dontwarn t**
-dontwarn u**
-dontwarn v**
-dontwarn w**
-dontwarn x**
-dontwarn y**
-dontwarn z**
-dontwarn com.a**
-dontwarn com.b**
-dontwarn com.d**
-dontwarn com.e**
-dontwarn com.f**
-dontwarn com.g**
-dontwarn com.h**
-dontwarn com.i**
-dontwarn com.j**
-dontwarn com.k**
-dontwarn com.l**
-dontwarn com.m**
-dontwarn com.n**
-dontwarn com.o**
-dontwarn com.p**
-dontwarn com.q**
-dontwarn com.r**
-dontwarn com.s**
-dontwarn com.t**
-dontwarn com.u**
-dontwarn com.v**
-dontwarn com.w**
-dontwarn com.x**
-dontwarn com.c**
-dontwarn com.z**
#單獨排除一下cn開頭的
-dontwarn cn**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章