Neste guia de início rápido, vamos mostrar como configurar o Firebase Crashlytics no seu app com o plug-in do Crashlytics no Flutter para receber relatórios de erros abrangentes no console do Firebase.
A configuração do Crashlytics envolve o uso de uma ferramenta de linha de comando e do ambiente de desenvolvimento integrado. Para concluir a configuração, você terá que forçar uma exceção de teste para enviar seu primeiro relatório de erros ao Firebase.
Antes de começar
- Configure e inicialize o Firebase no seu projeto criado com o Flutter, caso ainda não tenha feito isso. 
- Recomendado: para gerar automaticamente registros de navegação estrutural e entender as ações do usuário que levam a uma falha, um evento não fatal ou um ANR, você precisa para ativar o Google Analytics no seu projeto do Firebase. - Se o Google Analytics não estiver ativado no seu projeto do Firebase, ative o Google Analytics na guia Integrações das suas - > Configurações do projeto no console do Firebase.
- Se você estiver criando um novo projeto do Firebase, ative o Google Analytics durante a criação. 
 - Os registros de navegação estrutural estão disponíveis para todas as plataformas Android e Apple compatíveis com o Crashlytics (exceto o watchOS). 
Etapa 1: adicionar o Crashlytics ao seu projeto do Flutter
- Na raiz do seu projeto do Flutter, execute o seguinte comando para instalar o plug-in do Flutter para o Crashlytics: - Para aproveitar os registros de navegação estrutural, adicione também o plug-in do Flutter para o Google Analytics ao seu app. Verifique se o Google Analytics está ativado no seu projeto do Firebase. - flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
- No diretório raiz do projeto do Flutter, execute este comando: - flutterfire configure- Fazer isso garante que a configuração do Firebase do seu app Flutter está atualizada e, no Android, adiciona o plug-in Gradle do Crashlytics necessário ao app. 
- Após a conclusão, recrie seu projeto do Flutter: - flutter run
- (Opcional) Se o projeto do Flutter usa a flag - --split-debug-info(e, opcionalmente, também a flag- --obfuscate), outras etapas são necessárias para mostrar stack traces legíveis para seus apps.- Plataformas Apple: verifique se o projeto está usando a configuração de versão recomendada (Flutter 3.12.0+ e plug-in do Flutter do Crashlytics 3.3.4+) para que ele possa gerar e fazer upload automaticamente de símbolos do Flutter (arquivos dSYM) para o Crashlytics. 
- Android: use a CLI do Firebase (v.11.9.0+) para fazer upload de símbolos de depuração do Flutter. Você precisa fazer upload dos símbolos de depuração antes de relatar uma falha de um build de código ofuscado. - No diretório raiz do projeto do Flutter, execute o seguinte comando: - firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols - FIREBASE_APP_ID: seu ID do app Android do Firebase (não o nome do pacote) 
 Exemplo de ID do app Android do Firebase:- 1:567383003300:android:17104a2ced0c9b9b
- PATH/TO/symbols: o mesmo diretório que você passa para a flag- --split-debug-infoao criar o aplicativo.
 
 
Etapa 2: configurar gerenciadores de falhas
Você pode capturar automaticamente todos os erros gerados no framework do Flutter
substituindo FlutterError.onError por
FirebaseCrashlytics.instance.recordFlutterFatalError:
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
  runApp(MyApp());
}
Para detectar erros assíncronos que não são processados pelo framework do Flutter, use
PlatformDispatcher.instance.onError:
Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());
}
Para ver exemplos de como lidar com outros tipos de erros, consulte Personalizar relatórios de erros.
Etapa 3: forçar uma falha de teste para concluir a configuração
Para concluir a configuração do Crashlytics e conferir os dados iniciais no painel do Crashlytics no console do Firebase, é necessário forçar a geração de uma exceção de teste.
- Adicione um código ao app que possa ser usado para forçar a geração de uma exceção de teste. - Se você adicionou um gerenciador de erros que chama - FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)para o- Zonede nível superior, é possível usar o código a seguir para adicionar um botão ao seu app que, quando pressionado, gera uma exceção de teste:- TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
- Crie e execute seu app. 
- Force a geração da exceção de teste para enviar o primeiro relatório do app: - Abra o app no dispositivo ou emulador de teste. 
- No seu app, pressione o botão de exceção de teste que foi adicionado com o código acima. 
 
- Acesse o painel do Crashlytics no console do Firebase para ver a falha do teste. - Se você já atualizou o console e ainda não está vendo a falha de teste depois de 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 e, no
Android, erros não fatais e ANRs. Acesse o
painel do Crashlytics
para ver e analisar todos os relatórios e estatísticas.
Próximas etapas
- Personalize a configuração do relatório de erros adicionando relatórios de aceitação, registros, chaves e rastreamento de outros erros não fatais. 
- Faça a integração com o Google Play para filtrar os relatórios de erros do app Android pela faixa do Google Play diretamente no painel do Crashlytics. Isso permite que você configure o painel para monitorar builds específicos. 
- Confira stack traces e estatísticas de falhas com seu código na janela App Quality Insights no Android Studio (disponível a partir da versão Electric Eel 2022.1.1).