Mendapatkan laporan error yang dapat dibaca di dasbor Crashlytics (Flutter)
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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.
Buka kartu Your apps, lalu klik Aplikasi Apple
Firebase untuk melihat informasi aplikasi, termasuk ID Aplikasinya.
Di direktori level teratas project Flutter, temukan file firebase_options.dart Anda. ID Aplikasi Firebase untuk aplikasi Apple Anda diberi label sebagai appId.
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.
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.
Buka kartu Your apps, lalu klik Aplikasi Apple
Firebase untuk melihat informasi aplikasi, termasuk ID Aplikasinya.
Di direktori level teratas project Flutter, temukan file firebase_options.dart Anda. ID Aplikasi Firebase untuk aplikasi Apple Anda diberi label sebagai appId.
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: