Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Sesuaikan laporan kerusakan Firebase Crashlytics Anda

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan ini menjelaskan cara menyesuaikan laporan kerusakan menggunakan Firebase Crashlytics SDK. Secara default, Crashlytics secara otomatis mengumpulkan laporan kerusakan untuk semua pengguna aplikasi Anda (sebagai gantinya, Anda dapat menonaktifkan pelaporan kerusakan otomatis dan mengaktifkan pelaporan keikutsertaan untuk pengguna Anda). Crashlytics menyediakan empat mekanisme pembuatan log secara langsung: kunci khusus , log khusus , pengidentifikasi pengguna , dan pengecualian yang tertangkap .

Tambahkan kunci khusus

Kunci khusus membantu Anda mendapatkan status spesifik aplikasi Anda yang mengarah ke kerusakan. Anda dapat mengaitkan pasangan kunci/nilai arbitrer dengan laporan kerusakan, lalu menggunakan kunci khusus untuk menelusuri dan memfilter laporan kerusakan di Firebase console.

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

Gunakan metode setCustomValue untuk menetapkan pasangan kunci/nilai. Sebagai contoh:

Cepat

// Set int_key to 100.
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set str_key to "hello".
Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")

Objective-C

Saat menyetel bilangan bulat, boolean, atau float, kotakkan nilainya sebagai @( value ) .

// Set int_key to 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set str_key to "hello".
[[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];

Anda juga dapat mengubah nilai kunci yang ada dengan memanggil kunci dan menyetelnya ke nilai yang berbeda. Sebagai contoh:

Cepat

Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set int_key to 50 from 100.
Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")

Objective-C

[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set int_key to 50 from 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];

Tambahkan pasangan kunci/nilai secara massal menggunakan metode setCustomKeysAndValues ​​dengan NSDictionary sebagai satu-satunya parameter:

Cepat

let keysAndValues = [
                 "string key" : "string value",
                 "string key 2" : "string value 2",
                 "boolean key" : true,
                 "boolean key 2" : false,
                 "float key" : 1.01,
                 "float key 2" : 2.02
                ] as [String : Any]

Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)

Objective-C

NSDictionary *keysAndValues =
    @{@"string key" : @"string value",
      @"string key 2" : @"string value 2",
      @"boolean key" : @(YES),
      @"boolean key 2" : @(NO),
      @"float key" : @(1.01),
      @"float key 2" : @(2.02)};

[[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];

Tambahkan pesan log khusus

Untuk memberi Anda lebih banyak konteks untuk peristiwa yang mengarah ke crash, Anda dapat menambahkan log Crashlytics kustom ke aplikasi Anda. Crashlytics mengaitkan log dengan data kerusakan Anda dan menampilkannya di halaman Crashlytics di konsol Firebase , di bawah tab Log .

Cepat

Gunakan log() atau log(format:, arguments:) untuk membantu menentukan masalah. Jika Anda ingin mendapatkan keluaran log yang berguna dengan pesan, objek yang Anda teruskan ke log() harus sesuai dengan properti CustomStringConvertible . log() mengembalikan properti deskripsi yang Anda tetapkan untuk objek. Sebagai contoh:

Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")

.log(format:, arguments:) memformat nilai yang dikembalikan dari pemanggilan getVaList() . Sebagai contoh:

Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))

Untuk detail selengkapnya tentang cara menggunakan log() atau log(format:, arguments:) , lihat dokumentasi referensi Crashlytics .

Objective-C

Gunakan log atau logWithFormat untuk membantu menentukan masalah. Perhatikan bahwa jika Anda ingin mendapatkan keluaran log yang berguna dengan pesan, objek yang Anda teruskan ke salah satu metode harus mengganti properti instance description . Sebagai contoh:

[[FIRCrashlytics crashlytics] log:@"Simple string message"];

[[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict];

[[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];

Untuk detail selengkapnya tentang cara menggunakan log dan logWithFormat , lihat dokumentasi referensi Crashlytics .

Tetapkan pengidentifikasi pengguna

Untuk mendiagnosis masalah, mengetahui pengguna mana yang mengalami error tertentu sering kali membantu. Crashlytics menyertakan cara untuk mengidentifikasi pengguna secara anonim dalam laporan kerusakan Anda.

Untuk menambahkan ID pengguna ke laporan Anda, berikan pengenal unik kepada setiap pengguna dalam bentuk nomor ID, token, atau nilai hash:

Cepat

Crashlytics.crashlytics().setUserID("123456789")

Objective-C

[[FIRCrashlytics crashlytics] setUserID:@"123456789"];

Jika Anda perlu menghapus pengidentifikasi pengguna setelah menyetelnya, setel ulang nilainya menjadi string kosong. Menghapus ID pengguna tidak menghapus catatan Crashlytics yang ada. Jika Anda perlu menghapus rekaman yang terkait dengan ID pengguna, hubungi dukungan Firebase .

Aktifkan pelaporan keikutsertaan

Secara default, Crashlytics secara otomatis mengumpulkan laporan kerusakan untuk semua pengguna aplikasi Anda. Untuk memberi pengguna lebih banyak kontrol atas data yang mereka kirim, Anda dapat mengaktifkan pelaporan keikutsertaan dengan menonaktifkan pelaporan otomatis dan hanya mengirimkan data ke Crashlytics saat Anda memilihnya dalam kode Anda:

  1. Nonaktifkan pengumpulan otomatis dengan menambahkan kunci baru ke file Info.plist Anda:

    • Kunci: FirebaseCrashlyticsCollectionEnabled
    • Nilai: false
  2. Aktifkan pengumpulan untuk pengguna tertentu dengan memanggil penggantian pengumpulan data Crashlytics pada waktu proses. Nilai penggantian tetap ada selama peluncuran aplikasi Anda sehingga Crashlytics dapat mengumpulkan laporan secara otomatis.

    Untuk menyisih dari pelaporan kerusakan otomatis, berikan false sebagai nilai penggantian. Saat disetel ke false , nilai baru tidak berlaku hingga aplikasi dijalankan berikutnya.

    Cepat

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    Objective-C

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

Kelola data Crash Insights

Crash Insights membantu Anda menyelesaikan masalah dengan membandingkan pelacakan tumpukan anonim Anda dengan pelacakan dari aplikasi Firebase lain dan memberi tahu Anda jika masalah Anda merupakan bagian dari tren yang lebih besar. Untuk banyak masalah, Crash Insights bahkan menyediakan sumber daya untuk membantu Anda men-debug error tersebut.

Crash Insights menggunakan data kerusakan gabungan untuk mengidentifikasi tren stabilitas umum. Jika Anda memilih untuk tidak membagikan data aplikasi, Anda dapat menyisih dari Crash Insights dari menu Crash Insights di bagian atas daftar masalah Crashlytics di konsol Firebase .