Menyesuaikan laporan error Firebase Crashlytics


Di dasbor Crashlytics, Anda dapat mengklik masalah dan mendapatkan laporan peristiwa yang mendetail. Anda dapat menyesuaikan laporan tersebut untuk membantu lebih memahami situasi yang terjadi di aplikasi dan situasi seputar peristiwa yang dilaporkan ke Crashlytics.

  • Mendapatkan log breadcrumb secara otomatis jika aplikasi Anda menggunakan Firebase SDK untuk Google Analytics. Log ini memberi Anda visibilitas terkait tindakan pengguna yang mengarah ke peristiwa yang dikumpulkan Crashlytics di aplikasi Anda.

  • Menonaktifkan pelaporan error otomatis dan mengaktifkan pelaporan keikutsertaan untuk pengguna. Perlu diperhatikan bahwa, secara default, Crashlytics otomatis mengumpulkan laporan error untuk semua pengguna aplikasi Anda.

Melaporkan pengecualian

Melaporkan pengecualian yang tertangkap

Jika memiliki pengecualian yang diperkirakan, Anda dapat meminta Crashlytics SDK melaporkannya sebagai peristiwa non-fatal. Peristiwa ini dicatat ke dalam log di perangkat, lalu dikirim bersama dengan laporan peristiwa fatal berikutnya atau saat pengguna akhir memulai ulang game.

Anda dapat mencatat pengecualian di C# ke dalam log menggunakan metode berikut:

Crashlytics.LogException(Exception ex);

Anda dapat mencatat pengecualian yang diperkirakan ke dalam log dalam blok try/catch game:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Melaporkan pengecualian yang tidak tertangkap

Untuk pengecualian yang tidak tertangkap yang tidak membuat game Anda error (misalnya, pengecualian C# yang tidak tertangkap dalam logika game), Anda dapat meminta Crashlytics SDK melaporkannya sebagai peristiwa fatal dengan menetapkan properti Crashlytics.ReportUncaughtExceptionsAsFatal ke true tempat Anda menginisialisasi Crashlytics dalam project Unity Anda. Peristiwa ini dilaporkan ke Crashlytics secara real-time tanpa mengharuskan pengguna akhir memulai ulang game.

Melaporkan pengecualian yang tidak tertangkap ini sebagai peristiwa fatal berarti bahwa peristiwa tersebut akan dihitung dalam statistik pengguna bebas error dan notifikasi kecepatan.

Perhatikan bahwa masalah pada native code selalu dilaporkan sebagai peristiwa fatal. Peristiwa ini dicatat ke dalam log di perangkat, lalu dikirim saat pengguna akhir memulai ulang game.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

Menyertakan laporan GWP-ASan untuk men-debug masalah kerusakan memori

Untuk aplikasi Android yang menggunakan IL2CPP, Crashlytics dapat membantu Anda men-debug error yang disebabkan oleh error memori native dengan mengumpulkan laporan GWP-ASan. Error terkait memori ini dapat dikaitkan dengan kerusakan memori dalam aplikasi Anda, yang merupakan penyebab utama kerentanan keamanan aplikasi.

  • Anda dapat melihat data ini di tab "Pelacakan tumpukan memori" baru saat mengklik detail masalah di dasbor Crashlytics.

  • Anda juga dapat menggunakan sinyal dan laporan "Laporan GWP-ASan" baru untuk dengan cepat melihat semua masalah pada data ini.

Anda bisa mendapatkan laporan memori GWP-ASan jika aplikasi Anda menggunakan Crashlytics SDK terbaru untuk Unity (v10.7.0+) dan telah mengaktifkan GWP-ASan secara eksplisit (mengharuskan Anda untuk mengubah Manifes Aplikasi Android). Jika memiliki kode C++ di aplikasi, Anda dapat menguji penyiapan GWP-ASan menggunakan contoh kode native dalam dokumentasi Android.

Menambahkan kunci kustom

Kunci kustom membantu Anda mendapatkan status tertentu aplikasi menjelang error. Anda dapat mengaitkan key-value pair apa pun dengan laporan error, lalu menggunakan kunci kustom untuk menelusuri dan memfilter laporan error di Firebase console.

  • Di dasbor Crashlytics, Anda dapat mencari masalah yang cocok dengan kunci kustom.
  • Saat meninjau masalah tertentu di console, Anda dapat melihat kunci kustom yang dikaitkan untuk setiap peristiwa (subtab Keys) dan bahkan memfilter peristiwa berdasarkan kunci kustom (menu Filter di bagian atas halaman).

Ketika dipanggil beberapa kali, nilai baru untuk kunci yang ada akan menggantikan nilainya, dan hanya nilai terbaru yang direkam saat error dicatat.

Crashlytics.SetCustomKey(string key, string value);

Menambahkan pesan log kustom

Pesan yang dicatat dalam log dikaitkan dengan data error dan terlihat di dasbor Firebase Firebase Crashlytics saat Anda melihat error tertentu.

Crashlytics.Log(string message);

Menetapkan ID pengguna

Anda dapat menggunakan nomor ID, token, atau nilai hash untuk mengidentifikasi pengguna akhir aplikasi secara unik tanpa mengungkap atau mengirimkan informasi pribadi mereka. Anda juga dapat menghapus nilai ini dengan menetapkannya ke string kosong. Nilai ini ditampilkan di dasbor Firebase Crashlytics saat melihat error tertentu.

Crashlytics.SetUserId(string identifier);

Mendapatkan log breadcrumb

Log breadcrumb memberi Anda pemahaman yang lebih baik tentang interaksi yang dilakukan pengguna dengan aplikasi Anda yang mengarah ke peristiwa error, non-fatal, atau ANR. Log ini dapat bermanfaat saat mencoba mereproduksi dan men-debug masalah.

Log breadcrumb didukung oleh Google Analytics. Jadi, untuk mendapatkan log breadcrumb, Anda harus mengaktifkan Google Analytics untuk project Firebase dan menambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda. Setelah persyaratan ini terpenuhi, log breadcrumb akan otomatis disertakan dengan data peristiwa dalam tab Logs saat Anda melihat detail masalah.

Analytics SDK otomatis mencatat peristiwa screen_view ke dalam log, sehingga log breadcrumb dapat menampilkan daftar layar yang dilihat sebelum peristiwa error, non-fatal, atau ANR. Log breadcrumb screen_view berisi parameter firebase_screen_class.

Log breadcrumb juga diisi dengan setiap peristiwa kustom yang Anda catat secara manual dalam sesi pengguna, termasuk data parameter peristiwa. Data ini dapat membantu menunjukkan serangkaian tindakan pengguna yang mengarah ke peristiwa error, non-fatal, atau ANR.

Perhatikan bahwa Anda dapat mengontrol pengumpulan dan penggunaan data ,Google Analytics yang mencakup data yang mengisi log breadcrumb.

Mengaktifkan pelaporan keikutsertaan

Secara default, Crashlytics otomatis mengumpulkan laporan error untuk semua pengguna aplikasi Anda. Anda dapat memberi pengguna kontrol lebih terhadap data yang mereka kirim dengan mengizinkan mereka memilih ikut serta dalam pelaporan error.

Untuk menonaktifkan pengumpulan otomatis dan menginisialisasi Crashlytics hanya untuk pengguna tertentu, panggil penggantian pengumpulan data Crashlytics saat runtime. Nilai penggantian tetap ada setiap kali aplikasi diluncurkan, sehingga Crashlytics dapat otomatis mengumpulkan laporan. Untuk tidak diikutsertakan dalam pelaporan error otomatis, teruskan false sebagai nilai penggantian. Jika ditetapkan ke false, nilai baru tidak berlaku hingga aplikasi dijalankan berikutnya.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Mengelola data Crash Insights

Crash Insights membantu Anda mengatasi masalah dengan membandingkan pelacakan tumpukan anonim dengan trace dari aplikasi Firebase lain, serta memberitahukan apakah masalah Anda adalah bagian dari tren yang lebih besar. Untuk sebagian besar masalah, Crash Insights bahkan menyediakan resource untuk membantu Anda mendebug error.

Crash Insights menggunakan data error gabungan untuk mengidentifikasi tren stabilitas umum. Jika tidak ingin membagikan data aplikasi, Anda dapat menonaktifkan Crash Insights dari menu Crash Insights di bagian atas daftar masalah Crashlytics pada Firebase console.