La nouvelle documentation sur ProGuard pour Android dit d'ajouter une ligne au fichier default.properties dans le répertoire de base du projet. Cependant, en ouvrant ce fichier, j'ai lu en haut:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
Est-ce que je manque quelque chose?
En outre, existe-t-il un moyen d'activer ProGuard uniquement pour une version de production à partir d'Eclipse (c'est-à-dire lors de l'exportation du produit fini)?
android
eclipse
proguard
obfuscation
Ted Hopp
la source
la source
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
si vous avez besoin de paramètres personnalisés pour un projet spécifique.Réponses:
juste un suivi parce que je cherchais la même chose - et les réponses ici sont obsolètes - dernièrement, la configuration de base de proguard est ici dans le répertoire sdk - il vous suffit donc de la mettre dans votre project.properties:
si vous souhaitez apporter des modifications spécifiques au projet, créez un proguard-project.txt et changez la ligne en:
la source
SDK Android (r20 ou supérieur)
Veuillez vérifier le proguard.config prédéfini référencé dans project.properties
Plus d'infos: http://proguard.sourceforge.net/manual/examples.html#androidapplication
Sur Gradle:
Ici vous pouvez vérifier un fichier proguard "default" que je continue de mettre à jour: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
SDK Android (r19 ou inférieur)
Vous pouvez l'ajouter à default.properties. J'ai ajouté manuellement sans avoir de problème jusqu'à présent.
Si vous ajoutez la ligne:
Comme dit, il n'utilisera ProGuard que lors de l'exportation d'une application signée (Android Tools => Export Signed Application)
Si vous démarrez le projet avec le SDK avant Android 2.3, le
proguard.cfg
fichier ne sera pas créé (à côté dedefault.properties
comme dans 2.3>).Pour permettre la création automatique de celui-ci, il suffit de mettre à jour le SDK d'Android 2.3 et de créer un nouveau projet avec les sources existantes (qui sont les sources du projet que vous avez actuellement).
Le
proguard.cfg
remplissage sera automatiquement créé.Si toujours, vous souhaitez le créer manuellement, voici ce qu'il devrait contenir:
Je pense avoir répondu à toutes les questions ci-dessus.
MISE À JOUR :
Une explication ligne par ligne:
MISE À JOUR 2:
Dans la dernière utilisation d'ADT / Proguard
-keepclasseswithmembers
au lieu de-keepclasseswithmembernames
la source
proguard.config=proguard.cfg
mais le fichier proguard.cfg est introuvable ... Malgré l'exportation plusieurs fois, le redémarrage d'Eclipse, etc. Une idée pourquoi? et comment résoudre ce problème? Merci.À partir de ADT 16 au moins, vous pouvez en effet ajouter la ligne
project.properties
, et elle sera conservée. Vous pouvez essayer de changer la version du SDK cible et voir qu'elleproject.properties
est mise à jour en conséquence, mais la ligne ajoutée est toujours là. Donc, je pense que l'avertissement est simplement mal formulé; cela signifie que les paramètres du fichier tels quetarget
seront remplacés par les paramètres du projet, plutôt que l'inverse.la source
Les modifications apportées à la configuration de ProGuard sont survenues avec la version 17 d'ADT. ProGuard a été mis à jour de 4.4 à 4.7 et la différence dans la référence du fichier de configuration déjà notée a été introduite. Notez que les projets existants resteraient inchangés, les laissant sans le jeu de règles plus récent inclus dans cette version et les versions plus récentes d'ADT. La documentation pertinente pour la configuration plus récente, déjà notée par ligi ci-dessus, est disponible à: -
http://tools.android.com/recent/proguardimprovements "Deuxièmement, nous avons changé la façon dont les fichiers de configuration sont gérés."
la source
Vous pouvez ajouter la ligne à
build.properties
, comme indiqué dansdefault.properties
.la source