Testar a implementação do Crashlytics

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

  1. Adicione um código ao app que possa ser usado para forçar uma falha no teste.

    É possível usar o código a seguir para adicionar um botão ao seu app que, quando pressionado, causa uma falha. O botão é chamado de "Testar falha".

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    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("Test Crash", for: [])
          button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside)
          view.addSubview(button)
      }
    
      @IBAction func crashButtonTapped(_ sender: AnyObject) {
          let numbers = [0]
          let _ = numbers[1]
      }
    }
    

    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:@"Test Crash" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(crashButtonTapped:)
            forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:button];
    }
    
    ‐ (IBAction)crashButtonTapped:(id)sender {
        @[][1];
    }
    
    @end
    
  2. Crie e execute o app no Xcode com o depurador do Xcode desconectado.

    1. Clique em Build and then run the current scheme para criar seu app em um dispositivo de teste ou simulador.

    2. Aguarde até que o app esteja em execução e clique em Stop running the scheme or action para fechar a instância inicial do app. Essa instância inicial incluía o depurador que interfere no Crashlytics.

  3. Force a falha de teste para enviar o primeiro relatório de erros do app:

    1. Abra o app na tela inicial do dispositivo de teste ou do simulador.

    2. No app, pressione o botão "Testar falha" que você adicionou usando o código acima.

    3. Depois que o app falhar, execute-o novamente no Xcode para que ele possa enviar o relatório de falhas ao Firebase.

  4. Acesse o painel do Crashlytics no Console do Firebase para conferir a falha do teste.

Se você atualizou o console, mas a falha de teste ainda não foi exibida após cinco minutos, tente ativar o registro de depuração (próxima seção).

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

Se a falha de teste não aparecer no painel do Crashlytics, use a geração de registros de depuração para ajudar a rastrear o problema.

  1. Ative a geração de registros de depuração:

    1. No Xcode, selecione Product > Scheme > Edit scheme.

    2. Selecione Run no menu à esquerda e depois a guia Arguments.

    3. Na seção Arguments Passed On Launch, adicione -FIRDebugEnabled.

  2. Forçar uma falha de teste. A primeira seção desta página descreve como fazer isso.

  3. Nos registros, procure uma mensagem de registro do Crashlytics que contenha a string a seguir, que verifica se o app está enviando falhas ao Firebase.

    Completed report submission

Se o registro ou a falha de teste não aparecer no painel do Crashlytics do Console do Firebase após cinco minutos, entre em contato com o Suporte do Firebase com uma cópia do registro para que possamos ajudar a resolver esse problema.

Próximas etapas