Memulai Firebase Crashlytics

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

  1. Konfigurasikan dan lakukan inisialisasi Firebase di project Flutter jika Anda belum melakukannya.

  2. 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 >Project settings > tab Integrations, lalu ikuti petunjuk di layar untuk Google Analytics.

Langkah 1: Tambahkan Crashlytics ke project Flutter Anda

  1. Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin Flutter Crashlytics:

    flutter pub add firebase_crashlytics
    
  2. 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, sudah menambahkan plugin Gradle Crashlytics yang diperlukan ke aplikasi Anda.

  3. Setelah selesai, bangun ulang project Flutter Anda:

    flutter run
    
  4. (Opsional) Jika project Flutter Anda menggunakan flag --split-debug-info (dan, opsional, flag --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 flag --split-debug-info saat membangun 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.

  1. 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) ke Zone 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"),
    ),
    
  2. Bangun dan jalankan aplikasi Anda.

  3. Paksa penampilan pengecualian pengujian agar Anda dapat mengirimkan laporan pertama aplikasi:

    1. Buka aplikasi dari emulator atau perangkat pengujian.

    2. Di aplikasi Anda, tekan tombol pengecualian pengujian yang ditambahkan menggunakan kode di atas.

  4. 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 non-fatal dan ANR. Buka dasbor Crashlytics untuk melihat dan menyelidiki semua laporan dan statistik Anda.

Langkah berikutnya