Solución de problemas y preguntas frecuentes de Crashlytics

Esta página proporciona ayuda para la resolución de problemas y respuestas a preguntas frecuentes sobre el uso de Crashlytics. Si no encuentra lo que busca o necesita ayuda adicional, comuníquese con el soporte de Firebase .

Solución de problemas generales/Preguntas frecuentes

Es posible que observes dos formatos diferentes para los problemas enumerados en la tabla de Problemas de Firebase console. Y es posible que también notes una característica llamada "variantes" dentro de algunos de tus problemas. ¡Este es el por qué!

A principios de 2023, implementamos un motor de análisis mejorado para agrupar eventos, así como un diseño actualizado y algunas funciones avanzadas para nuevos problemas (¡como variantes!). Consulte nuestra publicación de blog reciente para conocer todos los detalles, pero puede leer a continuación los aspectos más destacados.

Crashlytics analiza todos los eventos de su aplicación (como fallas, no fatales y ANR) y crea grupos de eventos llamados problemas : todos los eventos de un problema tienen un punto de falla común.

Para agrupar eventos en estos problemas, el motor de análisis mejorado ahora analiza muchos aspectos del evento, incluidos los marcos en el seguimiento de la pila, el mensaje de excepción, el código de error y otras características de plataforma o tipo de error.

Sin embargo, dentro de este grupo de eventos, los seguimientos de la pila que conducen al error pueden ser diferentes. Un seguimiento de pila diferente podría significar una causa raíz diferente. Para representar esta posible diferencia dentro de un problema, ahora creamos variantes dentro de los problemas: cada variante es un subgrupo de eventos en un problema que tiene el mismo punto de falla y un seguimiento de pila similar. Con variantes, puede depurar los seguimientos de pila más comunes dentro de un problema y determinar si diferentes causas raíz están provocando el error.

Esto es lo que experimentará con estas mejoras:

  • Metadatos renovados que se muestran dentro de la fila del problema
    Ahora es más fácil comprender y clasificar los problemas en su aplicación.

  • Menos problemas duplicados
    Un cambio de número de línea no genera un nuevo problema.

  • Depuración más sencilla de problemas complejos con diversas causas fundamentales
    Utilice variantes para depurar los seguimientos de pila más comunes dentro de un problema.

  • Alertas y señales más significativas
    Un nuevo problema en realidad representa un nuevo error.

  • Búsqueda más poderosa
    Cada problema contiene más metadatos de búsqueda, como el tipo de excepción y el nombre del paquete.

Así es como se están implementando estas mejoras:

  • Cuando recibamos nuevos eventos de su aplicación, verificaremos si coinciden con un problema existente.

  • Si no hay ninguna coincidencia, aplicaremos automáticamente nuestro algoritmo de agrupación de eventos más inteligente al evento y crearemos una nueva incidencia con el diseño de metadatos renovado.

Esta es la primera gran actualización que estamos realizando en nuestra agrupación de eventos. Si tiene comentarios o encuentra algún problema, háganoslo saber presentando un informe.

Si no ve métricas sin fallas (como usuarios y sesiones sin fallas) y/o alertas de velocidad, asegúrese de estar usando el SDK de Crashlyticsv10.8.0+.

Si no ve registros de ruta de navegación , le recomendamos verificar la configuración de su aplicación para Google Analytics. Asegúrate de cumplir con los siguientes requisitos:

Para cargar los dSYM de su proyecto y obtener resultados detallados, verifique lo siguiente:

  1. Asegúrese de que la fase de compilación de su proyecto contenga el script de ejecución de Crashlytics, que permite a Xcode cargar los dSYM de su proyecto en el momento de la compilación (lea Inicialización de Crashlytics para obtener instrucciones sobre cómo agregar el script). Después de actualizar su proyecto, fuerce un bloqueo y confirme que el bloqueo aparece en el panel de Crashlytics.

  2. Si ve una alerta "Falta dSYM" en Firebase console, verifique Xcode para asegurarse de que esté generando dSYM correctamente para la compilación.

  3. Si Xcode está produciendo correctamente dSYM y sigue viendo que faltan dSYM, es probable que la herramienta de ejecución de secuencias de comandos se bloquee al cargar los dSYM. En este caso, pruebe cada uno de los siguientes:

    • Asegúrate de estar utilizando la última versión de Crashlytics.

    • Cargue los archivos dSYM que faltan manualmente:

      • Opción 1: use la opción "Arrastrar y soltar" basada en la consola en la pestaña dSYM para cargar un archivo zip que contenga los archivos dSYM que faltan.
      • Opción 2: utilice el script upload-symbols para cargar los archivos dSYM que faltan, para los UUID proporcionados en la pestaña dSYM .
  4. Si continúa viendo que faltan dSYM o las cargas aún no se realizan correctamente, comuníquese con el soporte de Firebase y asegúrese de incluir sus registros.

Si los seguimientos de su pila parecen estar mal simbolizados, verifique lo siguiente:

  • Si los marcos de la biblioteca de su aplicación carecen de referencias al código de su aplicación, asegúrese de que -fomit-frame-pointer no está configurado como indicador de compilación.

  • Si ve varios marcos (Missing) para la biblioteca de su aplicación, verifique si hay dSYM opcionales listados como faltantes (para la versión de la aplicación afectada) en la pestaña Crashlytics dSYM de Firebase console. Si es así, siga el paso de solución de problemas "Falta alerta de dSYM" en las preguntas frecuentes sobre dSYM faltan/no se cargan en esta página. Tenga en cuenta que cargar estos dSYM no simbolizará fallas que ya hayan ocurrido, pero esto ayudará a garantizar la simbolización para fallas futuras .

Las notas permiten a los miembros del proyecto comentar sobre temas específicos con preguntas, actualizaciones de estado, etc.

Cuando un miembro del proyecto publica una nota, se etiqueta con el correo electrónico de su cuenta de Google. Esta dirección de correo electrónico es visible, junto con la nota, para todos los miembros del proyecto con acceso para ver la nota.

A continuación se describe el acceso necesario para ver, escribir y eliminar notas:

Consulte Comprender las métricas sin fallos .

Las notas permiten a los miembros del proyecto comentar sobre temas específicos con preguntas, actualizaciones de estado, etc.

Cuando un miembro del proyecto publica una nota, se etiqueta con el correo electrónico de su cuenta de Google. Esta dirección de correo electrónico es visible, junto con la nota, para todos los miembros del proyecto con acceso para ver la nota.

A continuación se describe el acceso necesario para ver, escribir y eliminar notas:

Integraciones

Si su proyecto utiliza Crashlytics junto con el SDK de anuncios de Google para móviles, es probable que los informadores de fallos estén interfiriendo al registrar controladores de excepciones. Para solucionar el problema, desactive los informes de fallos en el SDK de anuncios móviles llamando disableSDKCrashReporting .

Después de vincular Crashlytics a BigQuery, los nuevos conjuntos de datos que cree se ubican automáticamente en los Estados Unidos, independientemente de la ubicación de su proyecto de Firebase.

Soporte de plataforma

Sí, puedes implementar Crashlytics en proyectos de macOS y tvOS. Asegúrese de incluir la versión 8.9.0+ del SDK de Firebase para Google Analytics para que las fallas tengan acceso a las métricas recopiladas por Google Analytics (usuarios sin fallas, última versión, alertas de velocidad y registros de ruta de navegación).

Ahora puede informar fallas para múltiples aplicaciones en un solo proyecto de Firebase, incluso cuando las aplicaciones están diseñadas para diferentes plataformas Apple (por ejemplo, iOS, tvOS y Mac Catalyst). Anteriormente, era necesario separar las aplicaciones en proyectos individuales de Firebase si contenían el mismo ID de paquete.

Problemas regresivos

Un problema ha tenido una regresión cuando lo cerró anteriormente, pero Crashlytics recibe un nuevo informe que indica que el problema ha vuelto a ocurrir. Crashlytics vuelve a abrir automáticamente estos problemas regresivos para que puedas abordarlos según corresponda para tu aplicación.

A continuación se muestra un escenario de ejemplo que explica cómo Crashlytics clasifica un problema como una regresión:

  1. Por primera vez, Crashlytics recibe un informe de fallo sobre el fallo "A". Crashlytics abre un problema correspondiente a ese bloqueo (Problema "A").
  2. Corrige este error rápidamente, cierra el problema "A" y luego publica una nueva versión de su aplicación.
  3. Crashlytics recibe otro informe sobre el problema "A" después de haber cerrado el problema.
    • Si el informe proviene de una versión de la aplicación que Crashlytics conocía cuando cerró el problema (lo que significa que la versión había enviado un informe de falla por cualquier falla), entonces Crashlytics no considerará que el problema ha retrocedido. La cuestión permanecerá cerrada.
    • Si el informe proviene de una versión de la aplicación que Crashlytics no conocía cuando cerró el problema (lo que significa que la versión nunca había enviado ningún informe de falla), entonces Crashlytics considera que el problema ha retrocedido y lo volverá a abrir. .

Cuando un problema regresa, enviamos una alerta de detección de regresión y agregamos una señal de regresión al problema para informarle que Crashlytics ha vuelto a abrir el problema. Si no desea que un problema se vuelva a abrir debido a nuestro algoritmo de regresión, "silencia" el problema en lugar de cerrarlo.

Si un informe proviene de una versión anterior de la aplicación que nunca había enviado ningún informe de fallas cuando cerró el problema, Crashlytics considera que el problema ha retrocedido y lo volverá a abrir.

Esta situación puede ocurrir en la siguiente situación: corrigió un error y lanzó una nueva versión de su aplicación, pero aún tiene usuarios en versiones anteriores sin la corrección del error. Si, por casualidad, una de esas versiones anteriores nunca había enviado ningún informe de fallos cuando usted cerró el problema, y ​​esos usuarios comienzan a encontrar el error, entonces esos informes de fallos desencadenarían un problema en regresión.

Si no desea que un problema se vuelva a abrir debido a nuestro algoritmo de regresión, "silencia" el problema en lugar de cerrarlo.