Panduan memulai ini menjelaskan cara menyiapkan Firebase Crashlytics di aplikasi Anda dengan Firebase Crashlytics SDK, agar Anda bisa mendapatkan laporan error yang komprehensif di Firebase console.
Penyiapan Crashlytics perlu dilakukan baik di Firebase console maupun di IDE Anda (misalnya, menambahkan file konfigurasi Firebase dan Crashlytics SDK). Untuk menyelesaikan penyiapan, paksa error pengujian agar Anda dapat mengirim laporan error pertama ke Firebase.
Sebelum memulai
Tambahkan Firebase ke project Apple jika Anda belum melakukannya. Jika tidak memiliki aplikasi Apple, Anda dapat mendownload aplikasi contoh.
Direkomendasikan: Untuk mendapatkan log breadcrumb secara otomatis guna memahami tindakan pengguna yang menyebabkan peristiwa error, non-fatal, atau ANR, Anda harus mengaktifkan Google Analytics di project Firebase Anda.
Jika project Firebase yang ada belum mengaktifkan Google Analytics, Anda dapat melakukannya dari tab Integrations di
di Firebase console. > Project settings Jika Anda membuat project Firebase baru, aktifkan Google Analytics selama alur kerja pembuatan project.
Perhatikan bahwa log breadcrumb tersedia untuk semua platform Apple yang didukung oleh Crashlytics, kecuali watchOS.
Langkah 1: Tambahkan Crashlytics SDK ke aplikasi Anda
Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.
- Di Xcode, dengan project aplikasi Anda dalam keadaan terbuka, buka File > Add Packages.
- Saat diminta, tambahkan repositori SDK platform Apple Firebase:
- Pilih library Crashlytics.
- Untuk memanfaatkan log breadcrumb, tambahkan juga Firebase SDK untuk Google Analytics ke aplikasi Anda. Pastikan Google Analytics diaktifkan di project Firebase Anda.
- Tambahkan flag
-ObjC
ke bagian Other Linker Flags pada setelan build target Anda. - (Khusus macOS) Di
Info.plist
, tambahkan kunciNSApplicationCrashOnExceptions
, lalu setel keYES
. - Setelah selesai, Xcode akan otomatis mulai me-resolve dan mendownload dependensi Anda di latar belakang.
https://github.com/firebase/firebase-ios-sdk.git
Selanjutnya, konfigurasikan modul Firebase:
Impor modul Firebase di struktur
App
atauUIApplicationDelegate
Anda:Swift
import Firebase
Objective-C
@import Firebase;
Konfigurasikan instance bersama
FirebaseApp
yang biasanya ada dalam metodeapplication(_:didFinishLaunchingWithOptions:)
aplikasi Anda:Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
Langkah 2: Siapkan Xcode untuk otomatis mengupload file dSYM
Untuk menghasilkan laporan error yang dapat dibaca manusia, Crashlytics memerlukan file simbol debug (dSYM) project Anda. Langkah-langkah berikut menjelaskan cara mengonfigurasi Xcode agar otomatis menghasilkan, memproses, dan mengupload file dSYM setiap kali Anda membangun aplikasi.
Buka ruang kerja Xcode pada project Anda, lalu pilih file project-nya di navigator kiri.
Dari daftar TARGETS, pilih target build utama Anda.
Klik tab Build Settings, lalu selesaikan langkah-langkah berikut sehingga Xcode menghasilkan dSYM untuk build Anda.
Klik All, lalu cari
debug information format
.Setel Debug Information Format ke
DWARF with dSYM File
untuk semua jenis build.
Klik tab Build Phases, lalu selesaikan langkah-langkah berikut sehingga Xcode dapat memproses dan mengupload file dSYM.
Klik
> 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 project dan menguploadnya ke Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
Di bagian Input Files, tambahkan jalur untuk lokasi file berikut:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Untuk mendapatkan informasi selengkapnya tentang file dSYM dan Crashlytics (termasuk cara mengupload file dSYM secara manual), buka artikel Mendapatkan laporan error yang di-deobfuscate.
Langkah 3: Paksa error pengujian untuk menyelesaikan penyiapan
Untuk menyelesaikan penyiapan Crashlytics dan melihat data awal di dasbor Crashlytics pada Firebase console, Anda harus memaksa error pengujian.
Tambahkan kode ke aplikasi yang dapat Anda gunakan untuk memaksa error pengujian.
Anda dapat menggunakan kode berikut untuk menambahkan tombol ke aplikasi Anda yang, saat ditekan, akan menyebabkan error. Tombol tersebut diberi label "Test Crash".
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Bangun dan jalankan aplikasi di Xcode saat debugger Xcode diputuskan koneksinya.
Klik
Build and then run the current scheme untuk membangun aplikasi Anda di simulator atau perangkat pengujian.Tunggu hingga aplikasi Anda berjalan, lalu klik
Stop running the scheme or action untuk menutup instance awal aplikasi Anda. Instance awal ini memiliki debugger yang mengganggu Crashlytics.
Paksa error pengujian untuk mengirimkan laporan error pertama aplikasi:
Buka aplikasi dari layar utama simulator atau perangkat pengujian Anda.
Di aplikasi Anda, tekan tombol "Test Crash" yang telah ditambahkan menggunakan kode di atas.
Setelah aplikasi Anda mengalami error, jalankan lagi dari Xcode sehingga aplikasi Anda dapat mengirimkan laporan error ke Firebase.
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.
Sudah selesai! Crashlytics kini memantau aplikasi Anda untuk menemukan error. Buka dasbor Crashlytics untuk melihat dan menyelidiki semua laporan dan statistik Anda.
Langkah berikutnya
- Sesuaikan penyiapan laporan error dengan menambahkan pelaporan keikutsertaan, log, kunci, dan pelacakan error non-fatal.