Ir a la consola

Prueba tu implementación de Firebase Crashlytics

Fuerza una falla para probar tu implementación

No es necesario que se produzca una falla para saber si Crashlytics está funcionando. Puedes usar el SDK para agregar el siguiente código a tu app y forzar un fallo:

Objective-C
#import "ViewController.h"
#import <Crashlytics/Crashlytics.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 {
    [[Crashlytics sharedInstance] crash];
}

@end
Swift
import UIKit
import Crashlytics

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) {
        Crashlytics.sharedInstance().crash()
    }
}

Ajusta la configuración de depuración del proyecto

Crashlytics no puede capturar fallos 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 Configuración de compilación.
  2. Haz clic en Todo en la parte superior de la pestaña para mostrar todas las configuraciones de compilación.
  3. Busca "formato de información de depuración".
  4. Configura el Formato de información de depuración como DWARF con archivo dSYM.

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 play_arrow Compilar y ejecutar el esquema actual en Xcode para compilar tu app en un dispositivo o un simulador.
  2. Haz clic en stop Detener la ejecución del esquema o la acción 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 Bloquear para bloquear la app.
  5. Abre la app una vez más para que la API de Crashlytics informe el fallo. 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.

Crashlytics 3.11.1 y versiones posteriores

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

-FIRDebugEnabled
Versiones anteriores
Objective-C
- (BOOL)application:(UIApplication *)application
          didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Initialize Firebase service.
        [FIRApp configure];
        [Fabric.sharedSDK setDebug:YES];
        return YES;
      }
Swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions
        launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Initialize Firebase service.
        FirebaseApp.configure()
        Fabric.sharedSDK().debug = true
        return true
      }

Próximos pasos

  • 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 no fatales.