1

Je développe une application android qui utilise mon propre framework/jar/SDK personnalisé. Supposons que le nom du paquet SDK soit com.vrs.fm dans ce paquet principal, il y a N non de sous-paquetages et de classes. Mon dossier de demande est com.vrs.app pour des raisons historiques. Tout en activant proguard sur mon SDK personnalisé vrs, j'ai besoin de garder les classes sous le paquet com.vrs donc j'ai ajouté ci-dessous les règles proguard.Proguard - Obfuscate les paquets intérieurs tout en conservant les paquets externes

-dontwarn com.vrs.** 
-keep class com.vrs.** { *; } 

Cela permet de garder mon code d'application également non obfusqué.

Maintenant, je voudrais savoir est sous com.vrs.fm

Répondre

2

il possible/règle, que je peux masquer les classes sous com.vrs.app packages mais en gardant les classes Vous pouvez utiliser une règle d'exclusion pour exclure certains sous-paquets d'être conservés:

-keep class !com.vrs.app.**, com.vrs.** { *; } 

S'il y a certaines parties en com.vrs.app qui doivent encore être conservés explicitement, vous pouvez ajouter des règles keep supplémentaires au besoin comme ça:

-keep class com.vrs.app.xxx.yyy { xxx; } 
+0

-keep class! Com.vrs.app. **, com.vrs. ** {; } ne fonctionne pas. Cependant -keep class! Com.vrs.app. *, Com.vrs. ** {*; } travailler mais obscurcir uniquement les classes sous com.vrs.app mais pas les sous-packages com.vrs.app.XXX. – vrs

+0

Avez-vous utilisé exactement la même règle que dans la réponse? Je serais surpris si cela ne fonctionne pas. Vérifiez si vous n'avez pas d'autre règle qui pourrait également conserver com.vrs.app. **. –

+0

Oui, j'ai utilisé la même règle que dans la réponse. Probablement d'autres règles proguard dans mon fichier pourraient l'arrêter. – vrs