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
Respuestas:
Debe ubicarse en
build/outputs/proguard/release/mapping.txt
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
.fuente
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
Son los nuevos caminos.Para mí están en
'build/outputs/mapping/release'
fuente
Encontré más limpio configurar proguard para escribir el archivo mapping.txt en una ubicación fuera del
build/
árbol de directorios, para que pueda ser más convenientemente registrado en el control de versiones.Para lograr esto, ponga esto en su
proguard-rules.pro
archivo:Esto (muy probablemente) lo colocará en el mismo directorio que su
proguard-rules.pro
archivo. En última instancia, probablemente desee escribirlo en el mismo directorio que su archivo APK y con un nombre equivalente (que puede 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 respuesta aquí).
ACTUALIZACIÓN: si tiene múltiples sabores de productos, esta es una solución mucho mejor: https://stackoverflow.com/a/31116608/444761
fuente
Descubrí que no se estaba generando, así que agregué esto al archivo de reglas
fuente
Es bastante tarde para responder esta pregunta, pero por si alguien necesita mi respuesta.
Ubicación del archivo de mapeo para desofuscar:
En general, en el modo de depuración, no necesita el archivo de mapeo porque generalmente la ofuscación está deshabilitada. Si no es ese el caso, asegúrese de que en el archivo build.gradle tenga el siguiente código para la variante de depuración.
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 pila entrantes 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
<sdk-root>/tools/proguard/bin/
directorio<sdk-root>
es el lugar donde se instalaron todas sus bibliotecas y SDK de Android.El script toma el archivo mapping.txt y su seguimiento de pila, produciendo un nuevo seguimiento de pila legible.
Sintaxis del comando:
Por ejemplo:
Prefiero la versión local de ofuscación, ya que es bastante útil para comprobar previamente los errores de producción.
Espero que ayude.
fuente
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 lanzamiento:
\app\build\outputs\mapping\release\mapping.txt
fuente
Aquí está en una imagen: la encontrará en la carpeta de mapeo:
fuente
Porque soy tonto y me pierdo incluso cuando alguien me dice dónde está el archivo:
fuente