Compartir a través de


Símbolo de iOS

Importante

Visual Studio App Center se retiró el 31 de marzo de 2025, excepto las características de análisis y diagnóstico, que seguirán siendo compatibles hasta el 30 de junio de 2026. Más información.

Los informes de bloqueo de macOS, tvOS e iOS muestran los rastros de pila de todos los hilos en ejecución de tu aplicación en el momento en que se produjo un bloqueo. Las trazas de pila solo contienen direcciones de memoria; no incluyen nombres de clase, métodos, nombres de archivo o números de línea requeridos para comprender los bloqueos.

Para la traducción de direcciones de memoria, debe cargar un paquete dSYM en App Center, el cual contiene toda la información necesaria para la simbolización. Puede obtener más información sobre la simbólica de la documentación oficial para desarrolladores de Apple.

El servicio de compilación y distribución de App Center puede generar automáticamente un archivo dSYM válido y un archivo de asignación de origen .zip, y cargar el archivo en el servicio de diagnósticos. 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 símbolos.

Bloqueos no simbolizados

Los bloqueos sin simbolizar se muestran en la sección "Diagnósticos" del App Center para que puedas ver algunos detalles incluso antes de cargar símbolos. Los símbolos que faltan de estos bloqueos se mostrarán en la pestaña "sin simbolizar". Si se cargan los símbolos que faltan, el grupo de bloqueos sin simbolizar se reemplazará por un grupo de bloqueos simbolizados.

Búsqueda de la .dSYM agrupación

  1. En Xcode, abra el menú Ventana y seleccione Organizador.
  2. Seleccione la pestaña Archivos .
  3. Seleccione la aplicación en la barra lateral izquierda.
  4. Haga clic con el botón derecho en el archivo más reciente y seleccione Mostrar en Finder.
  5. Haga clic con el botón derecho en el .xcarchive archivo en Finder y seleccione Mostrar contenido del paquete.
  6. Debería ver una carpeta denominada dSYMs que contiene el paquete dSYM.
  7. Cree un archivo ZIP del paquete dSYM.

Si usa Visual Studio en lugar de Xcode, consulte ¿Dónde puedo encontrar el archivo dSYM para simbolizar los registros de bloqueo de iOS? para buscar el archivo dSYM.

Cargar símbolos

App Center Portal

  1. Inicie sesión en App Center y seleccione la aplicación.
  2. En el menú izquierdo, vaya a la sección Diagnósticos y seleccione Símbolos.
  3. En la esquina superior derecha, haga clic en Cargar símbolos y cargue el archivo.
  4. Una vez que App Center indexe los símbolos, los bloqueos se simbolizarán automáticamente para ti.

Aplicaciones de iOS nativas de React

Para obtener archivos de símbolos para archivos iOS nativos de React, cree un archivo ZIP con el paquete dSYM en el equipo Mac y el mapa de origen de JavaScript de la aplicación. El mapa de origen debe denominarse index.ios.map. Los comandos siguientes generarán el mapa de origen para las compilaciones de versión:

react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map

App Center API

El proceso para cargar símbolos 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 symbol_type en Apple.

  1. Realice una POST solicitud a la API de Symbol_uploads. Esta llamada asigna espacio en nuestro back-end para el archivo y devuelve una symbol_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}'
  1. Con la upload_url propiedad devuelta desde el primer paso, realice una PUT 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}'
  1. Haga una PATCH solicitud a la API de symbol_uploads mediante la symbol_upload_id propiedad proporcionada en el primer paso. En el cuerpo de la solicitud, especifique si desea establecer el estado de la carga en committed (completado correctamente) el proceso de carga o aborted (no se completó correctamente).
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 símbolos:

appcenter crashes upload-symbols --symbol {symbol file}

Bitcode

Apple introdujo Bitcode para permitir que las aplicaciones enviadas a App Store se vuelvan a compilar mediante Apple y apliquen la optimización más reciente. Si Bitcode está habilitado, los símbolos generados para la aplicación en la tienda serán diferentes de los de su propio sistema de compilación.

Los informes de bloqueos de App Center aún no admiten completamente la simbolización de bloqueos de aplicaciones habilitadas para bitcode. Mientras tanto, le recomendamos que deshabilite el código de bits. Deshabilitar bitcode simplifica significativamente la administración de símbolos y actualmente no tiene ninguna desventaja conocida para las aplicaciones de iOS.

Desactiva el bitcode para tu aplicación

  1. En Xcode, abra la configuración del proyecto haciendo clic en el elemento de nivel superior en Project Navigator.
  2. Vaya a la página Configuración de compilación.
  3. Busque bitcode.
  4. En el resultado, cambie el valor de Sí a No.
  5. Recompilación de la aplicación

Con estos sencillos pasos, los informes de bloqueos de App Center funcionarán como de costumbre.

Recuperar símbolos para aplicaciones habilitadas con código de bits

Si desea mantener habilitado el código de bits, puede descargar los archivos dSYM adecuados siguiendo estos pasos:

  1. Abrir el organizador de Xcode
  2. Seleccione el archivo específico de la aplicación que cargó en iTunes Connect.
  3. Haga clic en el botón "Descargar dSYMs". Este paso insertará los archivos dSYM compilados de Bitcode en el archivo original.
  4. Sube los símbolos a la aplicación y la versión correspondientes en App Center

Si el organizador de Xcode no proporciona símbolos nuevos, debes descargar los archivos dSYM desde el portal de iTunes Connect siguiendo estos pasos:

  1. Selección de la aplicación en el portal de iTunes Connect
  2. Seleccione la pestaña Actividad en la parte superior.
  3. Seleccione la versión de compilación de la aplicación que tiene los símbolos que faltan.
  4. Haga clic en el vínculo Descargar dSYM.
  5. Cargue el archivo descargado en App Center. Este archivo contiene los símbolos necesarios para que App Center simbolice tus fallos.

Solución de problemas de símbolos

Si los bloqueos siguen apareciendo sin simbolizar después de cargar los símbolos y deshabilitar Bitcode, puede deberse a que los archivos dSYM cargados no coinciden con los que requiere App Center. Cuando cargas archivos dSYM, App Center los asocia con la versión correcta de la aplicación en función de los UUID.

Puede verificar si los archivos dSYM tienen los UUID adecuados utilizando una herramienta CLI denominada dwarfdump.

  1. Busque el UUID en el archivo dSYM:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. El resultado debería ser similar al que se muestra a continuación:
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
  1. Compruebe si el UUID devuelto coincide con los UUID que se muestran en el cuadro de diálogo símbolos de depuración:

App Center muestra el UUID de los símbolos necesarios

Omitir símbolos

Cuando App Center no tiene todos los archivos de símbolos para transformar completamente los informes de bloqueos, los bloqueos se muestran en la pestaña Insimbolicados. Los símbolos necesarios se cargan desde esta página si tiene acceso a ellos.

Si no puede cargar los símbolos, puede marcarlos como Omitir seleccionando filas en la tabla y haciendo clic en el botón Omitir versiones . Este botón indica a App Center que procese los bloqueos e intentará simbolizarlos en la mayor medida posible con los símbolos registrados. Una vez que hayan terminado de procesarse, aparecerán en la pestaña Bloqueos simbolizados parcialmente. Los nuevos bloqueos que también dependen de los mismos identificadores de símbolo marcados como omitidos pasarán por alto la pestaña Sin asignar al entrar y pasar por el sistema.