La nueva documentación de ProGuard para Android dice que agregue una línea al archivo default.properties en el directorio de inicio del proyecto. Sin embargo, al abrir este archivo, leí en la parte superior:
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
¿Me estoy perdiendo de algo?
Además, ¿hay alguna forma de habilitar ProGuard solo para una compilación de producción de Eclipse (es decir, al exportar el producto terminado)?
android
eclipse
proguard
obfuscation
Ted Hopp
fuente
fuente
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
si necesita configuraciones personalizadas para un proyecto específico.Respuestas:
solo un seguimiento porque estaba buscando lo mismo, y las respuestas aquí están desactualizadas, últimamente, la configuración básica de proguard está aquí en el directorio sdk, por lo que solo tiene que poner esto en su proyecto.propiedades:
si desea realizar modificaciones específicas del proyecto, cree un proguard-project.txt y cambie la línea a:
fuente
SDK de Android (r20 o superior)
Compruebe el proguard.config predefinido al que se hace referencia en project.properties
Más información: http://proguard.sourceforge.net/manual/examples.html#androidapplication
En Gradle:
Aquí puede consultar un archivo "predeterminado" de proguard que sigo actualizando: https://medium.com/code-procedure-and-rants/android-my-standard-proguard-ffeceaf65521
SDK de Android (r19 o inferior)
Puede agregarlo a default.properties. He estado agregando manualmente sin tener ningún problema hasta ahora.
Si agrega la línea:
Como se dijo, solo usará ProGuard al exportar la aplicación firmada (Herramientas de Android => Exportar aplicación firmada)
Si inicia el proyecto con el SDK antes de Android 2.3, el
proguard.cfg
archivo no se creará (junto adefault.properties
como en 2.3>).Para habilitar la creación automática de la misma, simplemente actualice al SDK de Android 2.3 y cree un nuevo proyecto con las fuentes existentes (que son las fuentes del proyecto que tiene actualmente).
Automáticamente se
proguard.cfg
creará el relleno.Si aún así, desea crearlo manualmente, esto es lo que debe contener:
Creo que he respondido todas las preguntas anteriores.
ACTUALIZAR :
Una explicación línea por línea:
ACTUALIZACIÓN 2:
En el uso más reciente de ADT / Proguard en
-keepclasseswithmembers
lugar de-keepclasseswithmembernames
fuente
proguard.config=proguard.cfg
pero el archivo proguard.cfg no se ve por ninguna parte ... A pesar de hacer la exportación varias veces, reiniciar Eclipse, etc. ¿Alguna idea de por qué? y como arreglar esto? Gracias.A partir de ADT 16 al menos, puede agregar la línea
project.properties
y se conservará. Puede intentar cambiar la versión del SDK de destino y ver queproject.properties
se actualiza en consecuencia, pero la línea agregada todavía está allí. Entonces, creo que la advertencia está mal redactada; significa decir que la configuración del archivo, comotarget
se sobrescribirá con la configuración del proyecto, en lugar de viceversa.fuente
Los cambios en la configuración de ProGuard se produjeron con la versión 17 de ADT. ProGuard se actualizó de 4.4 a 4.7 y se introdujo la diferencia en la referencia del archivo de configuración que ya se menciona. Tenga en cuenta que los proyectos existentes permanecerán sin cambios, dejándolos sin el conjunto de reglas más nuevo incluido en esta y las versiones más recientes de ADT. Documentos relevantes para arreglos de configuración más nuevos, ya mencionados por ligi arriba, están disponibles en: -
http://tools.android.com/recent/proguardimprovements "En segundo lugar, hemos cambiado la forma en que se manejan los archivos de configuración".
fuente
Puede agregar la línea a
build.properties
, como se menciona endefault.properties
.fuente