Comience con Firebase Crashlytics

Este inicio rápido describe cómo configurar Firebase Crashlytics en tu aplicación con el SDK de Firebase Crashlytics para que puedas obtener informes completos sobre fallas en Firebase console.

Configurar Crashlytics requiere tareas tanto en Firebase console como en tu IDE (como agregar un archivo de configuración de Firebase y el SDK de Crashlytics). Para finalizar la configuración, deberás forzar una prueba de falla para enviar tu primer informe de falla a Firebase.

Antes de que empieces

  1. Si aún no lo has hecho, agrega Firebase a tu proyecto de Apple. Si no tiene una aplicación de Apple, puede descargar una aplicación de muestra .

  2. Recomendado : para obtener funciones como usuarios sin fallas, registros de ruta de navegación y alertas de velocidad, debe habilitar Google Analytics en su proyecto de Firebase.

    Todas las plataformas Apple compatibles con Crashlytics (excepto watchOS) pueden aprovechar estas funciones de Google Analytics. Tenga en cuenta que necesita SDK v8.9.0+ para aplicaciones macOS y tvOS.

    • Si su proyecto Firebase existente no tiene Google Analytics habilitado, puede habilitar Google Analytics desde la pestaña Integraciones de su > Configuración del proyecto en Firebase console.

    • Si estás creando un nuevo proyecto de Firebase, habilita Google Analytics durante el flujo de trabajo de creación del proyecto.

Paso 1 : agregue el SDK de Crashlytics a su aplicación

Utilice Swift Package Manager para instalar y administrar las dependencias de Firebase.

  1. En Xcode, con el proyecto de su aplicación abierto, navegue hasta Archivo > Agregar paquetes .
  2. Cuando se le solicite, agregue el repositorio SDK de las plataformas Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Elija la biblioteca Crashlytics.
  5. Agregue el indicador -ObjC a la sección Otros indicadores del vinculador de la configuración de compilación de su objetivo.
  6. Para una experiencia óptima con Crashlytics, recomendamos habilitar Google Analytics en su proyecto de Firebase y agregar el SDK de Firebase para Google Analytics a su aplicación. Puede seleccionar la biblioteca sin colección IDFA o con colección IDFA.
  7. Cuando termine, Xcode comenzará automáticamente a resolver y descargar sus dependencias en segundo plano.

A continuación, configure el módulo Firebase:

  1. Importe el módulo Firebase en su estructura App o UIApplicationDelegate :

    Rápido

    import Firebase

    C objetivo

    @import Firebase;
  2. Configure una instancia compartida FirebaseApp , generalmente en el método application(_:didFinishLaunchingWithOptions:) del delegado de su aplicación:

    Rápido

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    C objetivo

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Paso 2 : configura Xcode para cargar automáticamente archivos dSYM

Para generar informes de fallos legibles por humanos, Crashlytics necesita los archivos de símbolo de depuración (dSYM) de su proyecto. Los siguientes pasos describen cómo configurar Xcode para producir automáticamente sus dSYM, procesarlos y cargar los archivos cada vez que cree su aplicación.

  1. Abra el espacio de trabajo Xcode de su proyecto, luego seleccione su archivo de proyecto en el navegador izquierdo.

  2. En la lista OBJETIVOS , seleccione su objetivo de construcción principal.

  3. Haga clic en la pestaña Configuración de compilación , luego complete los siguientes pasos para que Xcode produzca dSYM para sus compilaciones.

    1. Haga clic en Todo y luego busque debug information format .

    2. Establezca el formato de información de depuración en DWARF with dSYM File para todos sus tipos de compilación.

  4. Haga clic en la pestaña Fases de compilación , luego complete los siguientes pasos para que Xcode pueda procesar sus dSYM y cargar los archivos.

    1. Haga clic en > Nueva fase de ejecución de script .

      Asegúrese de que esta nueva fase de Ejecutar script sea la última fase de compilación de su proyecto; de lo contrario, Crashlytics no podrá procesar correctamente los dSYM.

    2. Expanda la nueva sección Ejecutar script .

    3. En el campo de secuencia de comandos (ubicado debajo de la etiqueta Shell ), agregue la siguiente secuencia de comandos de ejecución.

      Este script procesa los archivos dSYM de su proyecto y los carga en Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. En la sección Archivos de entrada , agregue las rutas de 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)

Para obtener información más detallada sobre los archivos dSYM y Crashlytics (incluido cómo cargar archivos dSYM manualmente), visite Obtener informes de fallos desofuscados .

Paso 3 : fuerce una prueba de bloqueo para finalizar la configuración

Para terminar de configurar Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes forzar una prueba de bloqueo.

  1. Agregue código a su aplicación que pueda usar para forzar una falla de prueba.

    Puede usar el siguiente código para agregar un botón a su aplicación que, cuando se presiona, provoca un bloqueo. El botón tiene la etiqueta "Test Crash".

    Interfaz de usuario rápida

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    Rápido

    import UIKit
    
    class ViewController: UIViewController {
      override func viewDidLoad() {
          super.viewDidLoad()
    
          // Do any additional setup after loading the view, typically from a nib.
    
          let button = UIButton(type: .roundedRect)
          button.frame = CGRect(x: 20, y: 50, width: 100, height: 30)
          button.setTitle("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }
    

    C objetivo

    #import "ViewController.h"
    
    @implementation ViewController
    ‐ (void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view, typically from a nib.
    
        UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(20, 50, 100, 30);
        [button setTitle:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
    
  2. Cree y ejecute su aplicación en Xcode con el depurador de Xcode desconectado.

    1. Haga clic en Construir y luego ejecute el esquema actual para construir su aplicación en un dispositivo o simulador de prueba.

    2. Espere hasta que su aplicación se esté ejecutando, luego haga clic en Detener la ejecución del esquema o acción para cerrar la instancia inicial de su aplicación. Esta instancia inicial incluía el depurador que interfiere con Crashlytics.

  3. Fuerza el bloqueo de prueba para enviar el primer informe de bloqueo de tu aplicación:

    1. Abra su aplicación desde la pantalla de inicio de su dispositivo de prueba o simulador.

    2. En su aplicación, presione el botón "Probar bloqueo" que agregó usando el código anterior.

    3. Después de que su aplicación falle, ejecútela nuevamente desde Xcode para que su aplicación pueda enviar el informe de fallas a Firebase.

  4. Vaya al panel de Crashlytics de Firebase console para ver el fallo de su prueba.

    Si actualizó la consola y aún no ve el fallo de prueba después de cinco minutos, habilite el registro de depuración para ver si su aplicación envía informes de fallos.


¡Y eso es! Crashlytics ahora está monitoreando su aplicación en busca de fallas. Visite el panel de Crashlytics para ver e investigar todos sus informes y estadísticas.

Próximos pasos