Obtenga informes de fallos legibles en el panel de Crashlytics

De forma predeterminada, Firebase Crashlytics procesa automáticamente los archivos de símbolos de depuración (dSYM) para brindarle informes de fallas desofuscados y legibles por humanos. Por lo general, configura este comportamiento durante la configuración inicial de Crashlytics en su aplicación, específicamente agregando un script de ejecución que carga automáticamente archivos dSYM durante la fase de compilación de su aplicación.

Desafortunadamente, existen algunos casos que podrían provocar que falle la carga automática de archivos dSYM. Esta guía proporciona algunas formas de solucionar problemas cuando Crashlytics no puede localizar los archivos dSYM de su aplicación.

Asegúrese de que Xcode pueda procesar automáticamente dSYM y cargar los archivos

Al configurar Crashlytics en su aplicación, configuró un script de ejecución para procesar automáticamente dSYM y cargar los archivos.

Asegúrese de que su configuración para el script de ejecución de Crashlytics esté actualizada con los nuevos requisitos que comenzaron con Xcode 15. Si su configuración no está actualizada, es posible que reciba el siguiente error:
error: Info.plist Error Unable to process Info.plist at path ...

Específicamente, Xcode 15 y posteriores requieren que proporcione un conjunto más completo de ubicaciones de archivos. Para su secuencia de comandos de ejecución de Crashlytics ( firebase-ios-sdk/Crashlytics/run ), asegúrese de tener la siguiente configuración:

  1. Haga clic en la pestaña Fases de compilación y luego expanda la sección Ejecutar script .

  2. En la sección Archivos de entrada , asegúrese de tener las rutas para las ubicaciones de los siguientes archivos:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

Compruebe si Xcode está produciendo dSYM

La mayoría de las veces, los archivos dSYM se pierden porque Xcode simplemente no los produce. Cuando falla una carga, Crashlytics muestra una alerta "Falta dSYM" en Firebase console. Si recibe esta alerta, primero verifique que Xcode esté produciendo el dSYM correcto para cada compilación:

  1. Abra su proyecto en Xcode y luego seleccione el archivo del proyecto en Xcode Navigator.

  2. Seleccione su objetivo de construcción principal.

  3. Abra la pestaña Configuración de compilación del objetivo y luego haga clic en Todo .

  4. Busque debug information format .

  5. Establezca el formato de información de depuración en DWARF con el archivo dSYM para todos sus tipos de compilación.

  6. Reconstruye tu aplicación.

Sus informes de fallos ahora deberían aparecer en el panel de Crashlytics . Si el problema persiste o encuentra otros errores, intente localizar sus dSYM y cargarlos en Crashlytics manualmente .

Ubique sus dSYM en una máquina local

Ejecute el siguiente comando para mostrar todos los UUID de sus dSYM en su máquina y busque el dSYM que falta:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Una vez que encuentre el dSYM, cárguelo manualmente en Crashlytics . Si el comando mdfind no arroja ningún resultado, puede buscar en el directorio Products donde se encuentra su .app (de forma predeterminada, el directorio Products se encuentra en Derived Data ). Si su aplicación se lanza a producción, también puede buscar su dSYM en el directorio .xcarchive en el disco:

  1. En Xcode, abra la ventana del Organizador y luego seleccione su aplicación de la lista. Xcode muestra una lista de archivos para su proyecto.

  2. Mantenga presionada la tecla Control y haga clic en un archivo para verlo en Finder. Mantenga presionada la tecla Control y haga clic nuevamente y luego haga clic en Mostrar contenido del paquete .

  3. Dentro de .xcarchive hay un directorio dSYM que contiene dSYM generados como parte del proceso de archivo de Xcode.

Sube tus dSYM

Crashlytics admite múltiples formas de cargar sus archivos dSYM, ya sea de forma automática o manual .

(Recomendado) Procese automáticamente sus dSYM y cargue los archivos

Cuando configuró inicialmente Crashlytics, lo más probable es que haya configurado este comportamiento de carga automática para su aplicación. Sin embargo, si las cargas automáticas fallan, verifique que su configuración sea correcta .

Cargue manualmente sus archivos dSYM

Si las cargas automáticas fallan, puede cargar manualmente sus archivos dSYM utilizando cualquiera de las siguientes opciones.

  • Opción 1 : use la opción "Arrastrar y soltar" basada en la consola para cargar un archivo zip que contenga sus archivos dSYM (vaya a la consola Firebase > Crashlytics > pestaña dSYMs ).

  • Opción 2 : use el script upload-symbols al que puede llamar desde cualquier lugar de su proceso de compilación para cargar manualmente sus archivos dSYM. Para ejecutar el script upload-symbols , utilice cualquiera de las siguientes opciones:

    • Opción A : incluya la siguiente línea en su proceso de compilación:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Opción B : Ejecute el script directamente desde su terminal:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Para obtener notas de uso e instrucciones adicionales sobre este script, ejecute upload-symbols con el parámetro --help .