Prueba tu implementación de Firebase Crashlytics

ios
android

Fuerza un fallo para probar tu implementación

ios

No es necesario que esperes un fallo 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. El fallo debería aparecer en Firebase console en 5 minutos.
android

No es necesario que esperes un fallo para saber si Crashlytics está funcionando. Puedes agregar un botón a la MainActivity de tu app para forzar un fallo:

Button crashButton = new Button(this);
crashButton.setText("Crash!");
crashButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        Crashlytics.getInstance().crash(); // Force a crash
    }
});
addContentView(crashButton,
               new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
               ViewGroup.LayoutParams.WRAP_CONTENT));

Cuando ejecutes pruebas, vuelve a abrir la app después de presionar el botón para forzar el fallo, a fin de asegurarte de que Crashlytics pudo informarlo. El informe debe aparecer en Firebase console en un plazo de cinco minutos.

Habilita el modo de depuración de Crashlytics

Si tu fallo forzado no tuvo efecto, falló antes de lo esperado o tienes otro problema con Crashlytics, puedes habilitar el modo de depuración de Crashlytics para hacer un seguimiento del problema.

ios
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
}
android

Para habilitar el modo de depuración en Android, primero debes agregar una línea a AndroidManifest.xml para inhabilitar la inicialización automática:

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

Luego, puedes inicializar Crashlytics de forma manual con el depurador habilitado:

final Fabric fabric = new Fabric.Builder(this)
        .kits(new Crashlytics())
        .debuggable(true)           // Enables Crashlytics debugger
        .build();
Fabric.with(fabric);

Próximos pasos

  • Personalizar informes de fallos: Crashlytics comienza a recopilar informes de fallos automáticamente apenas agregas el SDK, pero también puedes personalizar la configuración si agregas informes de habilitación, registros y claves, y haces un seguimiento de los errores no fatales.

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.