Ir para o console

Testar sua implementação do Firebase Crashlytics

Forçar a ocorrência de uma falha 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:

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

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 Build and then run the current scheme no Xcode para criar seu app em um dispositivo ou simulador.
  2. Clique em stop Stop running the scheme or action no Xcode para fechar a instância inicial do app. 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 Console do Firebase 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
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óximas etapas

  • 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, registros, chaves e rastreamento de erros não fatais.