poner - ¿Dónde guarda Android Studio el archivo de mapeo ProGuard?
android set title activity (8)
Debe ubicarse en
build/outputs/proguard/release/mapping.txt
en el directorio de su módulo de aplicación.
En la última versión de ProGuard y Android Studio, el archivo se encuentra en
build/outputs/mapping/release/mapping.txt
.
En Android Studio, ¿dónde se generan los archivos de mapeo ProGuard después de compilar un APK firmado?
No estoy seguro de si no funciona o si simplemente olvidé la ruta del archivo, y mi búsqueda obligatoria de Google / Stack Overflow no respondió esto
Descubrí que no se estaba generando, así que agregué esto al archivo de reglas
-printmapping build/outputs/mapping/release/mapping.txt
Encontré más limpio configurar proguard para escribir el archivo mapping.txt en una ubicación fuera del árbol de
build/
directorio, para que pueda ser más convenientemente registrado en el control de versiones.
Para lograr esto, coloque esto en su archivo
proguard-rules.pro
:
-printmapping mapping.txt
Esto (muy probablemente) lo colocará en el mismo directorio que su archivo
proguard-rules.pro
.
En última instancia, es probable que desee escribirlo en el mismo directorio que su archivo APK y con un nombre equivalente (que podría incluir sabor, tipo de compilación, etc.).
Nota: en mi experiencia, esto no es anulado por el archivo de plantilla Proguard (que fue sugerido por un comentarista a otra answer aquí).
ACTUALIZACIÓN: Si tiene múltiples sabores de productos, entonces esta es una solución mucho mejor: https://.com/a/31116608/444761
Es bastante tarde para responder esta pregunta, pero por si alguien necesita mi respuesta.
Ubicación del archivo de mapeo para desofuscar:
ProGuard guarda el archivo en la aplicación de aplicación / build / salidas / mapping / FLAVOR / release / mapping.txt
Generalmente en modo de depuración no necesita el archivo de mapeo porque generalmente la ofuscación está deshabilitada. Si no es así, asegúrese de que en el archivo build.gradle tenga el siguiente código para la variante de depuración.
debug {
minifyEnabled false
debuggable true
}
Algunas trampas:
El archivo mapping.txt se sobrescribe cada vez que crea una versión de lanzamiento con ProGuard, por lo tanto, primero haga una copia de seguridad de ese archivo antes de crear una nueva versión. Ayudará a rastrear la pila ofuscada de una versión anterior de su aplicación.
Aparte de eso, hay dos formas de ofuscar su código:
1. Cargue su archivo mapping.txt en Google Play Console:
Al publicar su aplicación en Google Play, puede cargar el archivo mapping.txt para cada versión de su APK. Luego, Google Play desofuscará los rastros de la pila entrante de los problemas informados por el usuario para que pueda revisarlos en la Consola de Google Play.
2. Utilice la herramienta sdk local retrace.sh/retrace.bat:
Algunas veces desea ejecutar la versión de lanzamiento de su aplicación (cambiando la variante de compilación para lanzarla y ejecutarla) para verificar y corregir los errores para que no ocurra en la producción (cuando se lanza a Play Store).
Para convertir un seguimiento de pila ofuscado en uno legible, use el script de rastreo ( retrace.bat en Windows; retrace.sh en Mac / Linux ).
Se encuentra en el directorio
<sdk-root>/tools/proguard/bin/
.
<sdk-root>
es el lugar donde se instalaron todas sus bibliotecas y sdks de Android.
El script toma el archivo mapping.txt y su seguimiento de pila, produciendo un nuevo seguimiento de pila legible.
Sintaxis del comando:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
Por ejemplo:
retrace.bat -verbose mapping.txt obfuscated_trace.txt
Prefiero la versión local de ofuscación, ya que es bastante útil para comprobar previamente los errores de producción.
Espero que ayude.
Estoy usando la versión Android Studio 2.2.2 . Para mí está ubicado en las siguientes ubicaciones:
Para depurar:
/app/build/outputs/mapping/debug/mapping.txt
Para el lanzamiento:
/app/build/outputs/mapping/release/mapping.txt
Para mí están en
''build/outputs/mapping/release''
Porque soy tonto y me pierdo incluso cuando alguien me dice dónde está el archivo:
cd StudioProjects/fooProject
find . -name "mapping.txt" | xargs less