Panduan memulai ini menjelaskan cara menyiapkan Firebase Crashlytics di aplikasi Anda dengan plugin Flutter Crashlytics sehingga Anda bisa mendapatkan laporan error yang komprehensif di Firebase console.
Untuk menyiapkan Crashlytics, Anda harus menggunakan alat command line dan IDE. Untuk menyelesaikan penyiapan, paksa penampilan pengecualian pengujian agar Anda dapat mengirimkan laporan error pertama ke Firebase.
Sebelum memulai
Konfigurasikan dan inisialisasi Firebase di project Flutter jika Anda belum melakukannya.
Direkomendasikan: Untuk mendapatkan fitur seperti pengguna bebas error, log breadcrumb, dan pemberitahuan kecepatan, Anda harus mengaktifkan Google Analytics di project Firebase.
Semua platform Android dan Apple yang didukung oleh Crashlytics (kecuali watchOS) dapat memanfaatkan fitur-fitur ini dari Google Analytics.
Pastikan Google Analytics sudah diaktifkan di project Firebase Anda: Buka
> tab Integrations, lalu ikuti petunjuk di layar untuk Google Analytics. >Project settings
Langkah 1: Tambahkan Crashlytics ke project Flutter Anda
Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin Flutter Crashlytics:
flutter pub add firebase_crashlytics
Dari direktori root project Flutter Anda, jalankan perintah berikut:
flutterfire configure
Dengan menjalankan perintah ini, Anda akan memastikan bahwa konfigurasi Firebase aplikasi Flutter merupakan yang terbaru dan, untuk Android, menambahkan plugin Gradle Crashlytics yang diperlukan ke aplikasi Anda.
Setelah selesai, build ulang project Flutter Anda:
flutter run
(Opsional) Jika project Flutter Anda menggunakan tanda
--split-debug-info
(dan, opsional, tanda--obfuscate
), Anda harus menggunakan Firebase CLI (v.11.9.0+) untuk mengupload simbol Android.Dari direktori root project Flutter Anda, jalankan perintah berikut:
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
Direktori
PATH/TO/symbols
adalah direktori yang sama dengan yang Anda teruskan ke tanda--split-debug-info
saat mem-build aplikasi.
Langkah 2: Konfigurasikan pengendali error
Anda dapat secara otomatis menangkap semua error yang ditampilkan dalam framework Flutter dengan mengganti FlutterError.onError
dengan 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());
}
Untuk menangkap error asinkron yang tidak ditangani oleh framework Flutter, gunakan 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());
}
Untuk mengetahui contoh cara menangani jenis error lainnya, baca artikel Menyesuaikan laporan error.
Langkah 3: Paksa error pengujian untuk menyelesaikan penyiapan
Untuk menyelesaikan penyiapan Crashlytics dan melihat data awal di dasbor Crashlytics pada Firebase console, Anda harus memaksakan penampilan pengecualian pengujian.
Tambahkan kode ke aplikasi yang dapat Anda gunakan untuk memaksakan penampilan pengecualian pengujian.
Jika telah menambahkan pengendali error yang memanggil
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
keZone
level teratas, Anda dapat menggunakan kode berikut untuk menambahkan tombol ke aplikasi yang, saat ditekan, akan menampilkan pengecualian pengujian:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Build dan jalankan aplikasi Anda.
Paksa penampilan pengecualian pengujian agar Anda dapat mengirimkan laporan pertama aplikasi:
Buka aplikasi dari emulator atau perangkat pengujian.
Di aplikasi Anda, tekan tombol pengecualian pengujian yang ditambahkan menggunakan kode di atas.
Buka dasbor Crashlytics pada Firebase console untuk melihat error pengujian Anda.
Jika Anda sudah me-refresh konsol dan masih tidak melihat error pengujian setelah lima menit, aktifkan logging debug untuk melihat apakah aplikasi Anda mengirim laporan error atau tidak.
Dan selesai! Crashlytics kini akan memantau aplikasi Anda untuk menemukan error dan, pada Android, error dan ANR yang tidak fatal. Buka dasbor Crashlytics untuk melihat dan menyelidiki semua laporan dan statistik Anda.
Langkah berikutnya
Sesuaikan penyiapan laporan error dengan menambahkan pelaporan keikutsertaan, log, kunci, dan pelacakan error non-fatal lainnya.
Integrasikan dengan Google Play sehingga Anda dapat memfilter laporan error aplikasi Android menurut jalur Google Play secara langsung di dasbor Crashlytics. Dengan demikian, Anda dapat lebih memfokuskan dasbor pada build tertentu.
Lihat pelacakan tumpukan dan statistik error beserta kode Anda dengan jendela App Quality Insights di Android Studio (tersedia mulai dari Electric Eel 2022.1.1).