Este guia de início rápido descreve como configurar o Firebase Crashlytics em seu aplicativo com o plug-in Crashlytics Flutter para que você possa obter relatórios de falhas abrangentes no console do Firebase.
A configuração do Crashlytics envolve o uso de uma ferramenta de linha de comando e de seu IDE. Para concluir a configuração, você precisará forçar o lançamento de uma exceção de teste para enviar seu primeiro relatório de falha ao Firebase.
Antes de você começar
Se ainda não o fez, configure e inicialize o Firebase em seu projeto Flutter.
Recomendado : para obter automaticamente registros de localização atual para entender as ações do usuário que levam a um evento de falha, não fatal ou ANR, você precisa ativar o Google Analytics em seu projeto do Firebase.
Se o seu projeto existente do Firebase não tiver o Google Analytics ativado, você poderá ativar o Google Analytics na guia Integrações do seu
Se você estiver criando um novo projeto do Firebase, ative o Google Analytics durante o fluxo de trabalho de criação do projeto.
Observe que os registros de navegação estão disponíveis para todas as plataformas Android e Apple suportadas pelo Crashlytics (exceto watchOS).
Etapa 1 : adicione Crashlytics ao seu projeto Flutter
Na raiz do seu projeto Flutter, execute o seguinte comando para instalar o plug-in Flutter para Crashlytics.
Para aproveitar as vantagens dos registros de localização atual , adicione também o plug-in Flutter para Google Analytics ao seu aplicativo. Certifique-se de que o Google Analytics esteja ativado em seu projeto Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
No diretório raiz do seu projeto Flutter, execute o seguinte comando:
flutterfire configure
A execução deste comando garante que a configuração do Firebase do seu aplicativo Flutter esteja atualizada e, para Android, adiciona o plug-in Crashlytics Gradle necessário ao seu aplicativo.
Depois de concluído, reconstrua seu projeto Flutter:
flutter run
(Opcional) Se o seu projeto Flutter usar o sinalizador
--split-debug-info
(e, opcionalmente, também o sinalizador--obfuscate
), etapas adicionais serão necessárias para mostrar rastreamentos de pilha legíveis para seus aplicativos.Plataformas Apple: certifique-se de que seu projeto esteja usando a configuração de versão recomendada (Flutter 3.12.0+ e plug-in Crashlytics Flutter 3.3.4+) para que seu projeto possa gerar e fazer upload automaticamente de símbolos 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 uma compilação de código ofuscada.
No diretório raiz do seu projeto Flutter, execute o seguinte comando:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : seu ID do aplicativo Android do Firebase (não o nome do seu pacote)
Exemplo de ID do aplicativo Android do Firebase:1:567383003300:android:17104a2ced0c9b9b
Aqui estão duas maneiras de encontrar seu ID do aplicativo Firebase:
No arquivo
google-services.json
, o ID do aplicativo é o valormobilesdk_app_id
; ouNo console do Firebase, acesse as configurações do projeto . Role para baixo até o cartão Seus aplicativos e clique no aplicativo Firebase desejado para encontrar seu ID do aplicativo.
PATH/TO /symbols
: O mesmo diretório que você passa para o sinalizador--split-debug-info
ao construir o aplicativo
Etapa 2 : configurar gerenciadores de falhas
Você pode capturar automaticamente todos os erros gerados na estrutura 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 capturar erros assíncronos que não são tratados pela estrutura 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 obter exemplos de como lidar com outros tipos de erros, consulte Personalizar relatórios de falhas .
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 o lançamento de uma exceção de teste.
Adicione código ao seu aplicativo que você pode usar para forçar o lançamento de uma exceção de teste.
Se você adicionou um gerenciador de erros que chama
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
aoZone
de nível superior, você pode usar o código a seguir para adicionar um botão ao seu aplicativo que, quando pressionado, lança uma exceção de teste:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Crie e execute seu aplicativo.
Force o lançamento da exceção de teste para enviar o primeiro relatório do seu aplicativo:
Abra seu aplicativo no dispositivo de teste ou emulador.
No seu aplicativo, pressione o botão de exceção de teste que você adicionou usando o código acima.
Acesse o painel do Crashlytics do console do Firebase para ver a falha do teste.
Se você atualizou o console e ainda não vê a falha do teste após cinco minutos, habilite o registro 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 e, no Android, erros não fatais e ANRs. Visite o painel do Crashlytics para visualizar e investigar todos os seus relatórios e estatísticas.
Próximos passos
Personalize a configuração do seu relatório de falhas adicionando relatórios opcionais, registros, chaves e rastreamento de erros não fatais adicionais.
Integre-se ao Google Play para que você possa filtrar os relatórios de erros do seu aplicativo Android por faixa do Google Play diretamente no painel do Crashlytics. Isso permite que você concentre melhor seu painel em compilações específicas.
Visualize rastreamentos de pilha e estatísticas de falhas junto com seu código com a janela App Quality Insights no Android Studio (disponível a partir do Electric Eel 2022.1.1).