Desobfuscación de Android
Importante
Visual Studio App Center está programado para la retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.
Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.
ProGuard, DexGuard y R8 son herramientas para optimizar y ofuscar el código de las aplicaciones de Android. Quita el código sin usar, cambia el nombre de las clases, los campos y los métodos con nombres semánticamente ocultos, lo que hace que la base de código sea más pequeña y difícil de invertir. Para habilitar la ofuscación con ProGuard o R8 en la aplicación Android, siga la documentación oficial para desarrolladores de Android.
Con ProGuard, DexGuard o R8 habilitado en la aplicación Android, los seguimientos de la pila deben desuscarse. App Center desoplica automáticamente los seguimientos de la pila para las aplicaciones de Java, Kotlin y React Native Android al cargar el mapping.txt
archivo creado en cada compilación. Este archivo asigna los nombres de clase, método y campo originales a los nombres ofuscados que hacen que los seguimientos de la pila sean legibles.
El servicio de compilación y distribución de App Center puede generar automáticamente archivos de asignación y cargarlos en el servicio de diagnóstico. Si usa App Center para compilar y distribuir automáticamente la aplicación a los usuarios finales, no es necesario obtener y cargar manualmente los archivos de asignación, como se detalla en los pasos siguientes.
Carga del archivo mapping.txt
App Center Portal
- Descarga del
mapping.txt
archivo del directorio de compilación del módulo de la aplicación - Inicie sesión en App Center y seleccione la aplicación.
- En el menú de la izquierda, vaya a la sección Diagnósticos .
- Seleccionar asignaciones
- Haga clic en el botón Cargar asignaciones en la esquina superior derecha.
- Rellene el nombre de versión y el código de versión (estos deben coincidir con la configuración de Gradle de la compilación para que la asignación funcione para una compilación determinada).
- Cargue el archivo desde el
mapping.txt
directorio de compilación del módulo de la aplicación. - Haga clic en el botón Save (Guardar).
App Center API
El proceso para cargar archivos de asignación a través de la API implica una serie de tres llamadas API: una para asignar espacio en nuestro back-end, otra para cargar el archivo y otra para actualizar el estado de la carga. El cuerpo de la primera llamada API debe establecerse AndroidProguard
symbol_type
en y version
build
las propiedades que corresponden al código de versión y al nombre de la versión, respectivamente, así como a file_name
.
- Desencadene una
POST
solicitud a la API de symbol_uploads. Esta llamada asigna espacio a nuestro back-end para el archivo y devuelve unasymbol_upload_id
propiedad y .upload_url
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
- Con la
upload_url
propiedad devuelta desde el primer paso, realice unaPUT
solicitud con el encabezado :"x-ms-blob-type: BlockBlob"
y proporcione la ubicación del archivo en el disco. Esta llamada carga el archivo en nuestras cuentas de almacenamiento de back-end. Obtenga más información sobre los encabezados de solicitud PUT Blob .
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- Realice una
PATCH
solicitud a la API de symbol_uploads mediante lasymbol_upload_id
propiedad devuelta desde el primer paso. En el cuerpo de la solicitud, especifique si desea establecer el estado de la cargacommitted
en (completado correctamente) el proceso de carga oaborted
(completado incorrectamente).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Nota
La API de carga de símbolos no funciona para archivos de más de 256 MB. Use la CLI de App Center para cargar estos archivos. Puede instalar la CLI de App Center siguiendo las instrucciones del repositorio de la CLI de App Center.
App Center CLI
También puede usar la CLI para cargar archivos de asignación:
appcenter crashes upload-mappings --mapping {mapping file} --version-name {version name} --version-code {version code}
Nota
App Center no puede comprobar si ha cargado el archivo correcto mapping.txt
. Se recomienda cargar el archivo directamente después de crear el archivo .apk o insertarlo en el repositorio de código si desea cargarlo más adelante.
Reenvío de la asignación desde una compilación en App Center
Si una compilación está configurada para generar un mapping.txt
archivo, las compilaciones de App Center generan el archivo como descarga disponible. Distribuir automáticamente la compilación o distribuirla manualmente más adelante reenviará el mapping.txt
archivo a Diagnostics para desactivar los informes de bloqueo entrantes. No es necesario cargar manualmente el mapping.txt
archivo después de distribuir una compilación.
Eliminación de un archivo de asignación
- Realice una
GET
solicitud a la API de symbols_list. Esto recupera los identificadores de los archivos de asignación que cargó. - Realice una
DELETE
solicitud a la API de symbols_upload con el identificador de archivo de asignación. Esto elimina el archivo de asignación especificado.