Testar sua implementação do Firebase Crashlytics

Forçar a ocorrência de um erro para testar sua implementação

Você não precisa esperar por uma falha para saber se o Crashlytics está funcionando. Você pode usar o SDK para forçar uma falha, adicionando o seguinte código ao seu aplicativo:

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()
    }
}
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

Ajustar as configurações de depuração do seu projeto

O Crashlytics não consegue capturar falhas se a versão anexar um depurador no lançamento. Ajuste as configurações da versão para alterar o formato de informações de depuração do projeto:

  1. Com seu projeto ainda selecionado no Navegador do Xcode, abra a guia Configurações da compilação.
  2. Clique em Todas na parte superior da guia para exibir todas as configurações de compilação.
  3. Procure por "Formato das informações de depuração".
  4. Defina a configuração do Formato das informações de depuração para DWARF com arquivo dSYM.

Testar

O snippet de código acima adiciona um botão que causa falha no seu app quando pressionado. Para que isso funcione, execute o aplicativo sem um depurador:

  1. Clique em play_arrow Criar e executar o esquema atual no Xcode para criar seu app em um dispositivo ou simulador.
  2. Clique em stop Parar de executar o esquema ou a ação no Xcode para fechar a instância inicial do aplicativo. Essa instância inicial inclui um depurador que interfere no Crashlytics.
  3. Abra seu app novamente no simulador ou no dispositivo.
  4. Toque em Falha para provocar uma falha no app.
  5. Abra seu app mais uma vez para permitir que a API Crashlytics reporte a falha, que aparecerá no Firebase console em até cinco minutos.

Ativar a geração de registros de depuração do Crashlytics

Se a tentativa não causar falha, se a falha ocorrer antes do esperado, ou se você estiver enfrentando algum outro problema com o Crashlytics, ative a geração de registros de depuração para rastrear o problema.

Crashlytics versão 3.11.1 ou posterior

Para ativar a geração de registros de depuração no seu dispositivo de desenvolvimento, especifique o seguinte argumento de linha de comando no Xcode:

-FIRDebugEnabled

Versões anteriores

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

A seguir

  • Personalizar relatórios de erros: o Crashlytics começa a coletar relatórios de erros automaticamente assim que você adiciona o SDK. No entanto, é possível personalizar a configuração ao incluir relatórios de permissão, registros, chaves e rastreamento de erros não fatais.