Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Comienza a usar Firebase Crashlytics

En esta guía de inicio rápido, se describe cómo configurar Firebase Crashlytics en tu app con el SDK de Firebase Crashlytics para que puedas obtener informes de fallas completos en Firebase console.

La configuración de Crashlytics requiere realizar tareas en Firebase console y en el IDE (por ejemplo, agregar un archivo de configuración de Firebase y el SDK de Crashlytics). Para finalizar la configuración, deberás forzar una falla de prueba a fin de enviar el primer informe de fallas a Firebase.

Antes de comenzar

  1. Si aún no lo has hecho, agrega Firebase a tu proyecto de iOS. Si no tienes ninguna app para iOS, puedes descargar la app de ejemplo.

  2. Recomendación: Para obtener funciones como usuarios que no experimentan fallas, registros de rutas de navegación y alertas de velocidad, debes habilitar Google Analytics en tu proyecto de Firebase.

    • Si el proyecto de Firebase actual no tiene habilitado Google Analytics, puedes hacerlo en la pestaña Integraciones de tu  > Configuración del proyecto en Firebase console.

    • Si quieres crear un nuevo proyecto de Firebase, habilita Google Analytics durante el flujo de trabajo de creación.

Paso 1: Habilita Crashlytics en Firebase console

  1. Ve al panel de Crashlytics en Firebase console.

  2. Asegúrate de que tu app esté seleccionada en el menú desplegable junto a Crashlytics en la parte superior de la página.

  3. Haz clic en Habilitar Crashlytics.

Paso 2: Agrega el SDK de Firebase Crashlytics a tu app

  1. Abre el Podfile que creaste para el proyecto de Firebase y agrega el pod FirebaseCrashlytics.

    Para obtener una experiencia óptima con Crashlytics, recomendamos habilitar Google Analytics en tu proyecto de Firebase y agregar el pod de Firebase para Google Analytics a la app.

    pod 'Firebase/Crashlytics'
    
    # Recommended: Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    
  2. Instala los pods y vuelve a abrir el archivo .xcworkspace para ver el proyecto en Xcode. Puedes hacerlo con los siguientes comandos:

    pod install
    open your-project.xcworkspace
    
  3. Importa el módulo de Firebase en UIApplicationDelegate:

    Swift

    import Firebase

    Objective‑C

    @import Firebase;
  4. Configura una instancia compartida de FirebaseApp, generalmente en el método application:didFinishLaunchingWithOptions:de tu app:

    Swift

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

    Objective‑C

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

Paso 3: Configura Xcode para subir archivos dSYM de forma automática

Para generar informes de fallas legibles, Crashlytics necesita los archivos del símbolo de depuración del proyecto (dSYM). En los siguientes pasos, se describe cómo configurar Xcode para producir automáticamente tus archivos dSYM, procesarlos y subir los archivos cada vez que compiles tu app.

  1. Abre el lugar de trabajo de Xcode del proyecto y, luego, selecciona su archivo de proyecto en el navegador izquierdo.

  2. En la lista TARGETS, selecciona tu destino de compilación principal.

  3. Haz clic en la pestaña Build Settings y, luego, completa los siguientes pasos para que Xcode genere archivos dSYM en tus compilaciones.

    1. Haz clic en All y, luego, busca debug information format.

    2. Configura el campo Debug Information Format como DWARF with dSYM File para todos tus tipos de compilación.

  4. Haz clic en la pestaña Build Phases y, luego, completa los siguientes pasos para que Xcode pueda procesar tus archivos dSYM y subirlos.

    1. Haz clic en  > New Run Script Phase.

      Asegúrate de que esta nueva fase Run Script sea la última fase de compilación del proyecto. De lo contrario, Crashlytics no podrá procesar correctamente los archivos dSYM.

    2. Expande la nueva sección Run Script.

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

      Esta secuencia de comandos procesa los archivos dSYM de tu proyecto y los sube a Crashlytics.

      "${PODS_ROOT}/FirebaseCrashlytics/run"
    4. En la sección Input Files, agrega las rutas de acceso de los siguientes archivos.

      • Agrega la ruta de acceso a los archivos dSYM del proyecto

        Esto permite que Crashlytics procese los dSYM para apps grandes con mayor rapidez.

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
      • Agrega la ruta de acceso al archivo Info.plist compilado de tu proyecto

        Esto permite que Crashlytics asocie una versión de la app con los dSYM.

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

Para obtener información más detallada sobre archivos dSYM y Crashlytics (incluido cómo subir archivos dSYM de forma manual), consulta Obtén informes de fallas desofuscados.

Paso 4: Fuerza una falla de prueba para finalizar la configuración

Para finalizar la configuración de Crashlytics y ver los datos iniciales en el panel de Crashlytics de Firebase console, debes forzar una falla de prueba.

  1. Agrega código a tu app para forzar una falla de prueba.

    Puedes usar el siguiente código para agregar un botón a tu app que, cuando se presione, cause una falla. El botón tiene la etiqueta “Test Crash”.

    Swift

    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]
      }
    }
    

    Objective-C

    #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. Compila y ejecuta tu app en Xcode. Sigue estos pasos para asegurarte de que tu dispositivo de prueba o simulador estén desconectados del depurador de Xcode (que interfiere en Crashlytics).

    1. Haz clic en Build and then run the current scheme para compilar la app en un dispositivo de prueba o simulador.

    2. Espera hasta que la app esté en ejecución y, luego, haz clic en Stop running the scheme or action para cerrar la instancia inicial. Esta instancia inicial incluía el depurador que interfiere en Crashlytics.

  3. Fuerza la falla de prueba para enviar el primer informe de fallas de la app, de la siguiente manera:

    1. Abre la app desde la pantalla principal del dispositivo o simulador.

    2. En tu app, presiona el botón “Test Crash” que agregaste con el código anterior.

    3. Cuando tu app falle, vuelve a ejecutarla desde Xcode para que pueda enviar el informe de fallas a Firebase.

  4. Ve al panel de Crashlytics en Firebase console para ver la falla de prueba.

    Si actualizaste la consola y sigues sin poder ver la falla de prueba después de cinco minutos, habilita el registro de depuración para confirmar si tu app está enviando informes de fallas.


Eso es todo. Crashlytics ahora supervisa la app para detectar fallas, y puedes ver y, también, investigar informes y estadísticas de fallas en el panel de Crashlytics.

Próximos pasos