Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Primeiros passos com o Firebase Crashlytics

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este início rápido descreve como configurar o Firebase Crashlytics em seu aplicativo com o SDK do Firebase Crashlytics para que você possa obter relatórios de falhas abrangentes no Firebase console.

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

Antes de você começar

  1. Se ainda não o fez, adicione o Firebase ao seu projeto da Apple. Se você não tiver um aplicativo da Apple, poderá baixar um aplicativo de amostra .

  2. Recomendado : para obter recursos como usuários sem falhas, logs de navegação e alertas de velocidade, você precisa ativar o Google Analytics em seu projeto do Firebase.

    Todas as plataformas Apple suportadas pelo Crashlytics (exceto watchOS) podem aproveitar esses recursos do Google Analytics. Observe que você precisa do SDK v8.9.0+ para aplicativos macOS e tvOS.

    • Se seu projeto existente do Firebase não tiver o Google Analytics ativado, você poderá ativar o Google Analytics na guia Integrações de suas > Configurações do projeto no console do Firebase.

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

Etapa 1 : adicionar o SDK do Crashlytics ao seu aplicativo

Use o Swift Package Manager para instalar e gerenciar as dependências do Firebase.

  1. No Xcode, com seu projeto de aplicativo aberto, navegue até File > Add Packages .
  2. Quando solicitado, adicione o repositório do SDK das plataformas Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Escolha a biblioteca Crashlytics.
  5. Para uma experiência ideal com o Crashlytics, recomendamos ativar o Google Analytics em seu projeto do Firebase e adicionar o SDK do Firebase para Google Analytics ao seu aplicativo. Você pode selecionar a biblioteca sem coleção de IDFA ou com coleção de IDFA.
  6. Quando terminar, o Xcode começará automaticamente a resolver e baixar suas dependências em segundo plano.

Em seguida, configure o módulo Firebase:

  1. Importe o módulo Firebase em sua App struct ou UIApplicationDelegate :

    Rápido

    import Firebase

    Objetivo-C

    @import Firebase;
  2. Configure uma instância compartilhada do FirebaseApp , normalmente no método application(_:didFinishLaunchingWithOptions:) do representante do seu aplicativo:

    Rápido

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

    Objetivo-C

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

Etapa 2 : configurar o Xcode para carregar arquivos dSYM automaticamente

Para gerar relatórios de falhas legíveis por humanos, o Crashlytics precisa dos arquivos de símbolo de depuração (dSYM) do seu projeto. As etapas a seguir descrevem como configurar o Xcode para produzir automaticamente seus dSYMs, processá-los e fazer upload dos arquivos sempre que você criar seu aplicativo.

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

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

  3. Clique na guia Configurações de compilação e conclua as etapas a seguir para que o Xcode produza dSYMs para suas compilações.

    1. Clique em Tudo e procure o debug information format .

    2. Defina o formato de informações de depuração como DWARF with dSYM File para todos os seus tipos de compilação.

  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 > Nova fase de script de execução .

      Certifique-se de que esta nova fase Run Script seja a última fase de construção do seu projeto; caso contrário, o Crashlytics não poderá processar dSYMs corretamente.

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

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

      Este script processa os arquivos dSYM do seu projeto e carrega os arquivos no Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Na seção Arquivos de entrada , adicione os caminhos para os locais dos seguintes arquivos:

      • A localização dos arquivos dSYM do seu projeto:

        ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

        Fornecer a localização dos arquivos dSYM do seu projeto permite que o Crashlytics processe dSYMs para aplicativos grandes com mais rapidez.

      • A localização do arquivo Info.plist construído do seu projeto:

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

        Fornecer o local do arquivo Info.plist integrado do seu projeto permite que o Crashlytics associe uma versão do aplicativo aos dSYMs.

Para obter informações mais detalhadas sobre arquivos dSYM e Crashlytics (incluindo como fazer upload manual de arquivos dSYM), acesse Obter relatórios de falhas desofuscados .

Etapa 3 : 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 Crashlytics do console do Firebase, você precisa forçar uma falha de teste.

  1. Adicione código ao seu aplicativo que você pode usar para forçar uma falha de teste.

    Você pode usar o código a seguir para adicionar um botão ao seu aplicativo que, quando pressionado, causa uma falha. O botão é rotulado como "Test Crash".

    SwiftUI

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

    UIKit

    Rápido

    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]
      }
    }
    

    Objetivo-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 seu aplicativo no Xcode.

    1. Clique Build e execute o esquema atual para criar seu aplicativo em um dispositivo de teste ou simulador.

    2. Aguarde até que seu aplicativo esteja em execução e clique em Parar de executar o esquema ou ação para fechar a instância inicial do seu aplicativo. Essa instância inicial incluiu o depurador que interfere no Crashlytics.

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

    1. Abra seu aplicativo na tela inicial do seu dispositivo de teste ou simulador.

    2. Em seu aplicativo, pressione o botão "Test Crash" que você adicionou usando o código acima.

    3. Depois que seu aplicativo travar, execute-o novamente no Xcode para que seu app possa enviar o relatório de falha ao Firebase.

  4. Acesse o painel do Crashlytics do console do Firebase para ver a falha do teste.

    Se você atualizou o console e ainda não está vendo a falha de teste após cinco minutos, habilite o log de depuração para ver se seu aplicativo está enviando relatórios de falha.


E é isso! O Crashlytics agora está monitorando seu aplicativo em busca de falhas. Visite o painel do Crashlytics para visualizar e investigar todos os seus relatórios e estatísticas.

Próximos passos