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. Este comportamiento se establece cuando agregas una secuencia de comandos de ejecución que inicializa Crashlytics a la fase de compilación de tu app.
Lamentablemente, hay algunos casos en los que podría fallar la carga de dSYM, como el código de bits en tu app o configuraciones únicas del proyecto. En esta guía se proporcionan algunas formas de solucionar problemas cuando Crashlytics no puede encontrar el archivo dSYM de tu app.
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 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 Firebase console. Si el problema persiste o si encuentras otros errores, intenta localizar tu dSYM y subirlo a Crashlytics de forma manual.
Localiza los dSYM
A veces, Crashlytics no puede encontrar el dSYM de tu app debido a las configuraciones de código de bits o la conectividad de la consola. Cuando esto sucede, hay dos formas adicionales de solucionar el problema:
Sube los archivos dSYM
Para subir manualmente los archivos dSYM, puedes usar la opción “Arrastrar y soltar” en la consola a fin de subir un archivo ZIP que contenga los archivos dSYM (visita Firebase console > Crashlytics > pestaña dSYM).
Como alternativa, Crashlytics incluye una secuencia de comandos upload-symbols
que puedes llamar desde cualquier punto de tu proceso de compilación para subir los
archivos dSYM de forma manual. La secuencia de comandos proporciona más información sobre el proceso de carga y
mensajes de error más detallados (para obtener instrucciones adicionales y ver las notas de uso,
ejecuta upload-symbols
sin ningún parámetro).
Cuando subes archivos dSYM de código de bits, puede ser útil quitar cualquier archivo de ícono en el archivo ZIP ejecutando lo siguiente:
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
Para ejecutar la secuencia de comandos upload-symbols
, usa alguna de las siguientes opciones:
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 \{\}
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