This guide contains instructions for the latest version of the Firebase Crashlytics SDK. If you migrated your app from Fabric, make sure it's been upgraded and no longer uses the deprecated legacy Fabric SDK.

Prueba tu implementación de Crashlytics

Fuerza una falla para probar tu implementación

No es necesario que esperes a que ocurra una falla para saber si Crashlytics funciona. Puedes usar el SDK para agregar el siguiente código a tu app y forzar una falla:

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("Crash", for: [])
        button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
        view.addSubview(button)
    }

    @IBAction func crashButtonTapped(_ sender: AnyObject) {
        fatalError()
    }
}

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:@"Crash" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(crashButtonTapped:)
        forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

- (IBAction)crashButtonTapped:(id)sender {
    @[][1];
}

@end

Para probar la implementación, presiona el botón de tu app a fin de forzar la falla y, luego, vuelve a abrirla para que Crashlytics pueda enviar el informe de fallas a Firebase. Es posible que el informe tarde hasta cinco minutos en aparecer en Firebase console.

Ajusta la configuración de depuración del proyecto

Crashlytics no puede capturar fallas si la compilación adjunta un depurador en el lanzamiento. Ajusta la configuración de compilación para cambiar el formato de información de depuración del proyecto:

  1. Con tu proyecto seleccionado en Xcode Navigator, abre la pestaña Build Settings.
  2. Haz clic en All en la parte superior de la pestaña para mostrar todas las configuraciones de compilación.
  3. Busca el formato de información de depuración.
  4. Configura Debug Information Format como DWARF with dSYM File.

Pruébalo

El fragmento de código anterior agrega un botón que bloquea la app cuando se presiona. Para que funcione, debes ejecutar la app sin un depurador:

  1. Haz clic en  Build and then run the current scheme en Xcode para compilar la app en un dispositivo o simulador.
  2. Haz clic en  Stop running the scheme or action en Xcode para cerrar la instancia inicial de la app. Esta instancia inicial incluye un depurador que interfiere en Crashlytics.
  3. Abre la aplicación otra vez desde el simulador o el dispositivo.
  4. Toca Crash para bloquear la app.
  5. Abre la app una vez más para que la API de Crashlytics informe la falla. La falla debería aparecer en Firebase console en 5 minutos.

Habilita el registro de depuración de Crashlytics

Si tu falla forzada no tuvo efecto, se produjo antes de lo esperado o tienes otro inconveniente con Crashlytics, puedes habilitar el registro de depuración de Crashlytics para hacer un seguimiento del problema.

Para habilitar el registro de depuración en el dispositivo de desarrollo, especifica el siguiente argumento de línea de comandos en Xcode:

-FIRDebugEnabled

Pasos siguientes

  • Personaliza informes de fallas: Crashlytics comienza a recopilar informes de fallas automáticamente apenas agregas el SDK, pero también puedes personalizar la configuración si agregas informes de aceptación, registros y claves, y haces un seguimiento de los errores recuperables.