Mendapatkan laporan error yang dapat dibaca di dasbor Crashlytics
Secara default, Firebase Crashlytics secara otomatis menginstrumentasikan project Flutter Anda untuk mengupload file simbol yang diperlukan guna memastikan laporan error di-deobfuscate dan dapat dibaca manusia.
Sayangnya, ada beberapa kasus yang dapat menyebabkan project tidak dikonfigurasi sepenuhnya. Panduan ini menguraikan proses otomatisasi dan memberikan langkah pertama untuk men-debug penyiapan project Anda.
Platform Apple
Memeriksa konfigurasi untuk mengupload file dSYM
Dengan menambahkan plugin Crashlytics Flutter dan menjalankan perintah flutterfire configure, skrip pengoperasian akan dicoba ditambahkan ke ruang kerja Xcode pada project Anda. Hal ini akan menemukan dan mengupload file simbol dSYM yang diperlukan ke Crashlytics. Tanpa file ini, Anda akan melihat pemberitahuan "Missing dSYM" di dasbor Crashlytics dan pengecualian akan disimpan oleh backend hingga file yang tidak ada diupload.
Jika mengalami masalah ini, pertama-tama pastikan Anda telah menginstal skrip pengoperasian:
Temukan dan buka file ruang kerja Xcode di direktori iOS project Anda (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Identifikasi apakah skrip pengoperasian berjudul [firebase_crashlytics] Crashlytics Upload Symbols telah ditambahkan ke Tahapan Build target Runner.
Skrip pengoperasian untuk upload otomatis dSYM tidak ada
Jika skrip pengoperasian ini tidak ada, Anda dapat menambahkannya secara manual:
Temukan ID Aplikasi Firebase untuk aplikasi Apple Anda. Berikut dua tempat berbeda untuk menemukan ID ini:
Di Firebase console, buka
settings > Project settings.
Scroll ke bawah ke kartu Your apps, lalu klik Aplikasi Apple Firebase untuk melihat informasi aplikasi, termasuk App ID.
Di direktori level teratas project Flutter, temukan file firebase_options.dart Anda. ID Aplikasi Firebase untuk aplikasi Apple Anda diberi label sebagai GOOGLE_APP_ID.
Klik add > New Run Script Phase.
Pastikan fase Run Script baru ini adalah fase build terakhir project Anda; jika tidak, Crashlytics tidak akan dapat memproses dSYM dengan benar.
Perluas bagian Run Script baru.
Di kolom skrip (terletak di bawah label Shell), tambahkan skrip pengoperasian berikut.
Skrip ini memproses file dSYM Anda dan mengupload file tersebut ke Crashlytics.
FIREBASE_APP_ID: ID Aplikasi Apple Firebase Anda (bukan ID paket Apple Anda)
Contoh ID Aplikasi Apple Firebase: 1:1234567890:ios:321abc456def7890
Perlu menemukan ID Aplikasi Firebase Anda?
Berikut dua cara untuk menemukan ID Aplikasi Firebase:
Di file GoogleService-Info.plist, ID Aplikasi Anda adalah nilai GOOGLE_APP_ID; atau
Di Firebase console, buka Project settings.
Scroll ke bawah ke kartu Your apps, lalu klik Aplikasi Firebase yang diinginkan untuk menemukan ID Aplikasi-nya.
Di bagian Input Files, tambahkan jalur untuk lokasi file berikut:
Xcode mencari lokasi yang ditentukan untuk file input ini guna memastikan bahwa file build tersedia untuk skrip pengoperasian. Selain itu, jika
User Script Sandboxing diaktifkan, Xcode hanya mengizinkan skrip
pengoperasian untuk mengakses file yang ditentukan di Input Files.
Dengan menyediakan lokasi file dSYM project, Crashlytics dapat memproses dSYM.
Dengan menyediakan lokasi file GoogleService-Info.plist yang di-build di aplikasi, Crashlytics dapat mengaitkan dSYM dengan aplikasi Firebase Anda.
Dengan menyediakan lokasi file yang dapat dieksekusi pada aplikasi, skrip pengoperasian dapat mencegah upload duplikat dari dSYM yang sama. Perlu diperhatikan bahwa biner aplikasi tidak diupload.
Skrip pengoperasian untuk upload otomatis dSYM ada
Jika skrip pengoperasian sudah ada, lihat
panduan khusus Apple untuk memecahkan masalah dSYM.
Anda harus melakukan langkah-langkah tambahan berikut jika memilih untuk mengupload file dSYM melalui proses yang dijelaskan:
Temukan ID Aplikasi Firebase untuk aplikasi Apple Anda. Berikut dua tempat berbeda untuk menemukan ID ini:
Di Firebase console, buka
settings > Project settings.
Scroll ke bawah ke kartu Your apps, lalu klik Aplikasi Apple Firebase untuk melihat informasi aplikasi, termasuk App ID.
Di direktori level teratas project Flutter, temukan file firebase_options.dart Anda. ID Aplikasi Firebase untuk aplikasi Apple Anda diberi label sebagai GOOGLE_APP_ID.
Saat menjalankan skrip upload-symbols, gunakan -ai FIREBASE_APPLE_APP_ID, bukan -gsp /path/to/GoogleService-Info.plist.
Memeriksa konfigurasi versi untuk Flutter dan Crashlytics(jika menggunakan flag --split-debug-info)
Jika project Flutter Anda menggunakan flag --split-debug-info (dan juga flag --obfuscate), langkah tambahan diperlukan untuk menampilkan stack trace yang dapat dibaca untuk aplikasi Anda.
Pastikan project Anda menggunakan konfigurasi versi yang direkomendasikan (Flutter 3.12.0+ dan plugin Flutter Crashlytics versi 3.3.4+) agar project Anda dapat membuat dan mengupload simbol Flutter (file dSYM) ke Crashlytics secara otomatis.
Android
Memeriksa konfigurasi dependensi
Perintah flutterfire configure mencoba menambahkan dependensi yang diperlukan ke file build Gradle project Anda. Tanpa dependensi ini, laporan error di Firebase console mungkin akan di-obfuscate jika obfuscation diaktifkan.
Pastikan baris berikut ada di build.gradle level project dan build.gradle level aplikasi:
Dalam file build level project (android/build.gradle), periksa baris berikut:
Dalam file build level aplikasi (android/app/build.gradle), periksa baris berikut:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
Pastikan Anda menggunakan CLI untuk mengupload simbol Flutter (jika menggunakan flag --split-debug-info)
Jika project Flutter Anda menggunakan flag --split-debug-info (dan juga flag --obfuscate), langkah tambahan diperlukan untuk menampilkan stack trace yang dapat dibaca untuk aplikasi Anda.
Gunakan Firebase CLI (v.11.9.0+) untuk mengupload simbol debug Flutter. Anda harus mengupload simbol debug sebelum melaporkan error dari
build kode yang di-obfuscate.
Dari direktori root project Flutter Anda, jalankan perintah berikut:
FIREBASE_APP_ID: ID Aplikasi Android Firebase Anda (bukan nama paket)
Contoh ID Aplikasi Android Firebase: 1:567383003300:android:17104a2ced0c9b9b
Perlu menemukan ID Aplikasi Firebase Anda?
Berikut dua cara untuk menemukan ID Aplikasi Firebase:
Di file google-services.json, ID Aplikasi Anda adalah nilai mobilesdk_app_id; atau
Di Firebase console, buka Project settings.
Scroll ke bawah ke kartu Your apps, lalu klik Aplikasi Firebase yang diinginkan untuk menemukan ID Aplikasi-nya.
PATH/TO/symbols: Direktori yang sama yang Anda teruskan ke flag --split-debug-info saat membangun aplikasi