O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Primeiros passos com o Firebase Crashlytics

Neste guia de início rápido, descrevemos como configurar o Firebase Crashlytics no seu app com o SDK do Firebase Crashlytics para que você possa receber relatórios de erros abrangentes no Console do Firebase.

A configuração do Crashlytics exige tarefas no Console do Firebase e no ambiente de desenvolvimento integrado (como adicionar um arquivo de configuração do Firebase e do SDK do Crashlytics). Para concluir a configuração, você precisará forçar uma falha de teste para enviar seu primeiro relatório de erros ao Firebase.

Antes de começar

  1. Adicione o Firebase ao seu projeto do iOS, caso ainda não tenha feito. Se você não tiver um app iOS, faça o download de um app de exemplo.

  2. Recomendado: para ter recursos como usuários sem falhas, registros de navegação estrutural e alertas de velocidade, ative o Google Analytics no seu projeto do Firebase.

    • Caso seu projeto atual do Firebase não tenha o Google Analytics ativado, ative-o na guia Integrações das suas > Configurações do projeto no Console do Firebase.

    • Se estiver criando um novo projeto do Firebase, ative o Google Analytics durante o fluxo de trabalho de criação do projeto.

Etapa 1: ativar o Crashlytics no Console do Firebase

  1. Acesse o painel do Crashlytics no Console do Firebase.

  2. Verifique se seu app está selecionado na lista suspensa ao lado de Crashlytics na parte superior da página.

  3. Clique em Ativar Crashlytics.

Etapa 2: adicionar o SDK do Firebase Crashlytics ao seu app

  1. Abra o podfile que você criou em seu projeto do Firebase e adicione o pod FirebaseCrashlytics.

    Para uma experiência ideal com o Crashlytics, recomendamos ativar o Google Analytics no seu projeto e adicionar o pod do Firebase para Google Analytics ao seu app.

    pod 'Firebase/Crashlytics'
    
    # Recommended: Add the Firebase pod for Google Analytics
    pod 'Firebase/Analytics'
    
  2. Instale os pods e abra novamente o arquivo .xcworkspace para ver o projeto no Xcode:

    pod install
    open your-project.xcworkspace
    
  3. Importe o módulo do Firebase no UIApplicationDelegate:

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  4. Configure uma instância compartilhada do FirebaseApp, normalmente no método application:didFinishLaunchingWithOptions: do seu app:

    Swift

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

    Objective-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Etapa 3: configurar o Xcode para fazer upload automático de arquivos dSYM

Para gerar relatórios de erros legíveis, o Crashlytics precisa dos arquivos do símbolo de depuração do seu projeto (dSYM, na sigla em inglês). Veja nas etapas a seguir como configurar o Xcode para produzir automaticamente os dSYMs, processá-los e fazer upload dos arquivos sempre que você criar seu app.

  1. Abra o espaço de trabalho do Xcode e selecione o arquivo do projeto no navegador à esquerda.

  2. Na lista TARGETS, selecione o destino de criação principal.

  3. Clique na guia Build Settings e conclua as etapas a seguir para que o Xcode gere dSYMs para seus builds.

    1. Clique em All e pesquise por debug information format.

    2. Defina Debug Information Format como DWARF with dSYM File para todos os tipos de builds.

  4. Clique na guia Build Phases e conclua as etapas a seguir para que o Xcode possa processar seus dSYMs e fazer upload dos arquivos.

    1. Clique em > New Run Script Phase.

      Verifique se essa nova fase Run Script é a última fase de build do seu projeto. Caso contrário, o Crashlytics não poderá processar dSYMs corretamente.

    2. Expanda a nova seção Run Script.

    3. No campo do script (localizado no rótulo Shell), adicione o script de execução a seguir.

      Este script processa os arquivos dSYM do seu projeto e faz upload deles para o Crashlytics.

      "${PODS_ROOT}/FirebaseCrashlytics/run"
    4. Na seção Input Files, adicione os caminhos dos arquivos a seguir.

      • Adicionar o caminho aos arquivos dSYM do seu projeto

        Isso permite que o Crashlytics processe dSYMs para apps grandes com mais rapidez.

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
      • Adicione o caminho ao arquivo Info.plist criado do projeto

        Isso permite que o Crashlytics associe uma versão do app aos dSYMs.

        $(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

Para informações mais detalhadas sobre os arquivos dSYM e o Crashlytics (incluindo como fazer upload manual de arquivos dSYM), acesse Receber relatórios de erros desofuscados.

Etapa 4: forçar uma falha de teste para concluir a configuração

Para concluir a configuração do Crashlytics e ver os dados iniciais no painel do Console do Firebase, é necessário forçar uma falha no teste.

  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".

    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. Siga as etapas a seguir para garantir que seu dispositivo ou simulador de teste esteja desconectado do depurador do Xcode, que interfere no Crashlytics.

    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 ver a falha do teste.

    Se você atualizou o console e ainda não consegue ver a falha de teste após cinco minutos, ative a geração de registros de depuração para ver se o app está enviando relatórios de falha.


Pronto. O Crashlytics agora está monitorando seu app em busca de falhas. Você também pode ver e investigar relatórios de erros e estatísticas no painel do Crashlytics.

Próximas etapas