获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Comience con Firebase Crashlytics

Esta guía de inicio rápido describe cómo configurar Firebase Crashlytics en su aplicación con el SDK de Firebase Crashlytics para que pueda obtener informes completos sobre fallas en la consola de Firebase.

La configuración de Crashlytics requiere tareas tanto en la consola de Firebase como en su IDE (como agregar un archivo de configuración de Firebase y el SDK de Crashlytics). Para finalizar la configuración, deberá forzar un bloqueo de prueba para enviar su primer informe de bloqueo a Firebase.

Antes de que empieces

  1. Si aún no lo ha hecho, agregue Firebase a su 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 bloqueos, registros de migas de pan y alertas de velocidad, debe habilitar Google Analytics en su proyecto de Firebase.

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

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

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

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

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

  1. En Xcode, con su proyecto de aplicación abierto, vaya a Archivo > Agregar paquetes .
  2. Cuando se le solicite, agregue el repositorio del SDK de las plataformas Apple de Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Elija la biblioteca de Crashlytics.
  5. 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.
  6. Cuando termine, Xcode comenzará a resolver y descargar automáticamente sus dependencias en segundo plano.

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

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

    Rápido

    import Firebase

    C objetivo

    @import Firebase;
  2. Configura una instancia compartida de FirebaseApp , normalmente en el método application(_:didFinishLaunchingWithOptions:) del delegado de tu 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 : configure Xcode para cargar automáticamente archivos dSYM

Para generar informes de fallas 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 siempre que cree su aplicación.

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

  2. En la lista OBJETIVOS , seleccione su objetivo de compilació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 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 > Nueva fase de secuencia de comandos de ejecución .

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

    2. Expanda la nueva sección Ejecutar script .

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

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

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. En la sección Archivos de entrada , agregue las rutas para las ubicaciones de los siguientes archivos:

      • La ubicación de los archivos dSYM de su proyecto:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        Proporcionar la ubicación de los archivos dSYM de su proyecto permite que Crashlytics procese los dSYM para aplicaciones grandes con mayor rapidez.

      • La ubicación del archivo Info.plist integrado de su proyecto:

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

        Al proporcionar la ubicación del archivo Info.plist integrado de su proyecto, Crashlytics puede asociar una versión de la aplicación con los dSYM.

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

Paso 3 : forzar un bloqueo de prueba para finalizar la configuración

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

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

    Puede usar el siguiente código para agregar un botón a su aplicación que, cuando se presiona, provoque un bloqueo. El botón está etiquetado como "Test Crash".

    SwiftUI

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

    kit de interfaz de usuario

    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.

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

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

  3. Fuerce el bloqueo de prueba para enviar el primer informe de bloqueo de su 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 "Test Crash" 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 control de Crashlytics de la consola de Firebase para ver su bloqueo de prueba.

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


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

Próximos pasos