De forma predeterminada, Firebase Crashlytics procesa tus archivos de símbolos de depuración (dSYM) automáticamente para proporcionarte informes de fallas desofuscados y legibles por humanos. Por lo general, configuras este comportamiento durante la configuración inicial de Crashlytics en tu app, en particular, con la opción de agregar una secuencia de comandos de ejecución que suba automáticamente archivos dSYM durante la fase de compilación de la app.
Lamentablemente, hay algunos casos en los que se podría producir un error en la carga automática de tus archivos dSYM. En esta guía, se proporcionan algunas formas de solucionar problemas cuando Crashlytics no pueden encontrar los archivos dSYM de tu app.
Asegúrate de que Xcode pueda procesar automáticamente los archivos dSYM y subirlos
Cuando configuraste Crashlytics en tu app, configuraste una secuencia de comandos de ejecución para procesar automáticamente los archivos dSYM y subirlos.
Asegúrate de que la configuración de la secuencia de comandos de ejecución de Crashlytics esté
actualizada con los nuevos requisitos que comenzaron con Xcode 15. Si la
configuración no está actualizada, es posible que recibas el siguiente error:
error: Info.plist Error Unable to process Info.plist at path ...
.
En particular, Xcode 15 y las versiones posteriores requieren que proporciones un conjunto más completo de ubicaciones de archivos. Para la secuencia de comandos de ejecución de Crashlytics
(firebase-ios-sdk/Crashlytics/run
), asegúrate de tener la siguiente
configuración:
Haz clic en la pestaña Build Phases y, luego, expande la sección Run Script.
En la sección Archivos de entrada, asegúrate 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)
Verifica si Xcode genera archivos 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 "dSYM faltante" en Firebase console. Si recibes esta alerta, primero verifica que Xcode genere el dSYM correcto para cada compilación:
Abre tu proyecto en Xcode y, luego, selecciona el archivo de proyecto en el Navegador de Xcode.
Selecciona tu objetivo de compilación principal.
Abre la pestaña Build Settings del destino y, luego, haz clic en All.
Busca
debug information format
.Configura el campo Debug Information Format como DWARF with dSYM File para todos tus tipos de compilación.
Vuelve a compilar la app.
Tus informes de fallas ahora deberían aparecer en el panel de Crashlytics. Si el problema persiste o se producen otros errores, intenta localizar los archivos dSYM y subirlos a Crashlytics de forma manual.
Localiza tus archivos dSYM en una máquina local
Ejecuta el siguiente comando para mostrar todos los UUID de los dSYM en tu máquina y, luego, busca el dSYM faltante:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Una vez que encuentres el archivo dSYM, súbelo de forma manual a Crashlytics.
Si el comando mdfind
no muestra ningún resultado, puedes buscar en el
directorio Products
en el que se encuentra .app
(de forma predeterminada, el directorio
Products
está en Derived Data
). Si la app se lanza a producción,
también puedes buscar su archivo dSYM en el directorio .xcarchive
del disco:
En Xcode, abre la ventana Organizer y, luego, selecciona tu app de la lista. Xcode muestra una lista de archivos para tu proyecto.
Mantén la tecla Control presionada y haz clic en un archivo para verlo en Finder. Vuelve a hacer clic en la tecla Control y, luego, en Show Package Contents.
Dentro de
.xcarchive
, hay un directorio dSYM que contiene archivos dSYM generados como parte del proceso de archivado de Xcode.
Sube los archivos dSYM
Crashlytics admite múltiples formas de subir los archivos dSYM, ya sea automáticamente o de forma manual.
(Recomendado) Procesa automáticamente tus archivos dSYM y súbelos
Cuando configuraste Crashlytics, lo más probable es que hayas configurado este comportamiento de carga automática para tu app. Sin embargo, si fallan las cargas automáticas, verifica que la configuración sea correcta.
Sube manualmente tus archivos dSYM
Si las cargas automáticas fallan, puedes subir tus archivos dSYM de forma manual con cualquiera de las siguientes opciones.
Opción 1: Usa la opción "Arrastrar y soltar" basada en la consola para subir un archivo ZIP que contenga tus archivos dSYM (ve a Firebase console > Crashlytics > pestaña dSYMs).
Opción 2: Usa la secuencia de comandos
upload-symbols
a la que puedes llamar desde cualquier parte de tu proceso de compilación para subir manualmente tus archivos dSYM. Para ejecutar la secuencia de comandosupload-symbols
, usa alguna de las siguientes opciones:Opción A: Incluye la siguiente línea en el 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: Ejecuta la secuencia de comandos directamente desde la terminal:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
Para ver notas de uso y más instrucciones sobre esta secuencia de comandos, ejecuta
upload-symbols
con el parámetro--help
.