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 Unity, jika Anda belum melakukannya. Jika belum memiliki project Unity, 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.
Langkah 1: Tambahkan Crashlytics SDK ke aplikasi Anda
Perlu diperhatikan bahwa saat mendaftarkan project Unity ke project Firebase, Anda mungkin telah mendownload Firebase Unity SDK dan menambahkan paket yang dijelaskan dalam langkah-langkah berikut.
Download Firebase Unity SDK, lalu ekstrak SDK ke tempat yang mudah diakses. Firebase Unity SDK tidak dikhususkan untuk platform tertentu.
Pada project Unity yang terbuka, buka Assets > Import Package > Custom Package.
Dari SDK yang telah diekstrak, pilih untuk mengimpor Crashlytics SDK (
FirebaseCrashlytics.unitypackage
).Untuk memanfaatkan log breadcrumb, tambahkan juga Firebase SDK untuk Google Analytics ke aplikasi Anda (
FirebaseAnalytics.unitypackage
). Pastikan Google Analytics diaktifkan di project Firebase Anda.Di jendela Import Unity Package, klik Import.
Langkah 2: Lakukan inisialisasi Crashlytics
Buat skrip C# baru, lalu tambahkan ke
GameObject
di scene.Buka scene pertama Anda, lalu buat
GameObject
kosong bernamaCrashlyticsInitializer
.Klik Add Component di Inspector untuk objek baru.
Pilih skrip
CrashlyticsInit
Anda untuk menambahkannya ke objekCrashlyticsInitializer
.
Lakukan inisialisasi Crashlytics dalam metode
Start
skrip:using System.Collections; using System.Collections.Generic; using UnityEngine; // Import Firebase and Crashlytics using Firebase; using Firebase.Crashlytics; public class CrashlyticsInit : MonoBehaviour { // Use this for initialization void Start () { // Initialize Firebase Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. // Crashlytics will use the DefaultInstance, as well; // this ensures that Crashlytics is initialized. Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance; // When this property is set to true, Crashlytics will report all // uncaught exceptions as fatal events. This is the recommended behavior. Crashlytics.ReportUncaughtExceptionsAsFatal = true; // Set a flag here for indicating that your project is ready to use Firebase. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}",dependencyStatus)); // Firebase Unity SDK is not safe to use here. } }); } // Update is called once per frame void Update() // ... }
Langkah 3: (Khusus Android) Lakukan penyiapan untuk upload simbol
Langkah ini hanya diperlukan untuk aplikasi Android yang menggunakan IL2CPP.
Untuk aplikasi Android yang menggunakan backend pembuatan skrip Mono dari Unity, langkah-langkah ini tidak diperlukan.
Untuk aplikasi platform Apple, langkah-langkah ini tidak diperlukan karena plugin Firebase Unity Editor secara otomatis mengonfigurasi project Xcode untuk mengupload simbol.
Unity SDK Crashlytics versi 8.6.1 atau yang lebih baru otomatis menyertakan pelaporan error NDK, yang memungkinkan Crashlytics melaporkan error IL2CPP Unity di Android secara otomatis. Namun, guna melihat stack trace tersimbolisasi untuk error library native di dasbor Crashlytics, Anda harus mengupload informasi simbol pada waktu build menggunakan Firebase CLI.
Untuk menyiapkan upload simbol, ikuti petunjuk menginstal Firebase CLI.
Jika Anda sudah menginstal CLI, pastikan untuk mengupdate ke versi terbarunya.
Langkah 4: Bangun project Anda dan upload simbol
iOS+ (platform Apple)
Dari dialog Build Settings, ekspor project Anda ke ruang kerja Xcode.
Bangun aplikasi Anda.
Untuk platform Apple, plugin Firebase Unity Editor secara otomatis mengonfigurasi project Xcode Anda untuk membuat dan mengupload file simbol yang kompatibel dengan Crashlytics ke server Firebase untuk setiap build.
Android
Dari dialog Build Settings, lakukan salah satu langkah berikut:
Ekspor ke project Android Studio untuk membangun project Anda; atau
Bangun APK langsung dari Unity Editor.
Sebelum membangun, pastikan kotak centang untuk Create symbols.zip dicentang pada dialog Build Settings.
Setelah build selesai, buat file simbol yang kompatibel dengan Crashlytics dan upload ke server Firebase dengan menjalankan perintah Firebase CLI berikut:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: ID Aplikasi Android Firebase Anda (bukan nama paket)
Contoh ID Aplikasi Android Firebase:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/SYMBOLS: Jalur ke file simbol yang dihasilkan oleh CLI
Mengekspor ke project Android Studio — PATH/TO/SYMBOLS adalah direktori
unityLibrary/symbols
, yang dibuat dalam root project yang diekspor setelah Anda membangun aplikasi melalui Gradle atau Android Studio.Membangun APK langsung dari dalam Unity — PATH/TO/SYMBOLS adalah jalur file simbol terkompresi yang dihasilkan di direktori root project saat build Anda selesai (misalnya:
).myproject/myapp-1.0-v100.symbols.zip
Lihat opsi lanjutan untuk menggunakan perintah Firebase CLI dalam pembuatan dan upload file simbol
Flag Deskripsi --generator=csym
Menggunakan generator file simbol cSYM lama, bukan generator Breakpad default
Tidak direkomendasikan untuk digunakan. Sebaiknya gunakan generator file simbol Breakpad default.
--generator=breakpad
Menggunakan generator file simbol Breakpad
Perhatikan bahwa default untuk pembuatan file simbol adalah Breakpad. Hanya gunakan flag ini jika Anda telah menambahkan
dalam konfigurasi build dan ingin menggantinya untuk menggunakan Breakpad.symbolGenerator { csym() }
--dry-run
Membuat file simbol tetapi tidak menguploadnya
Flag ini berguna jika Anda ingin memeriksa konten file yang dikirim.
--debug
Menyediakan informasi proses debug tambahan
Langkah 5: 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.
Temukan
GameObject
yang ada, lalu tambahkan ke skrip berikut. Skrip ini akan menyebabkan error pengujian beberapa detik setelah Anda menjalankan aplikasi.using System; using UnityEngine; public class CrashlyticsTester : MonoBehaviour { int updatesBeforeException; // Use this for initialization void Start () { updatesBeforeException = 0; } // Update is called once per frame void Update() { // Call the exception-throwing method here so that it's run // every frame update throwExceptionEvery60Updates(); } // A method that tests your Crashlytics implementation by throwing an // exception every 60 frame updates. You should see reports in the // Firebase console a few minutes after running your app with this method. void throwExceptionEvery60Updates() { if (updatesBeforeException > 0) { updatesBeforeException--; } else { // Set the counter to 60 updates updatesBeforeException = 60; // Throw an exception to test your Crashlytics implementation throw new System.Exception("test exception please ignore"); } } }
Bangun aplikasi Anda dan upload informasi simbol setelah build selesai.
iOS+: Plugin Firebase Unity Editor otomatis mengonfigurasi project Xcode untuk mengupload file simbol.
Android: Untuk aplikasi Android yang menggunakan IL2CPP, jalankan perintah
crashlytics:symbols:upload
Firebase CLI untuk mengupload file simbol Anda.
Jalankan aplikasi Anda. Setelah aplikasi berjalan, pantau log perangkat dan tunggu hingga pengecualian dipicu dari
CrashlyticsTester
.iOS+: Lihat log di panel bawah Xcode.
Android: Lihat log dengan menjalankan perintah berikut di terminal:
adb logcat
.
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
- (Direkomendasikan) Untuk aplikasi Android yang menggunakan IL2CPP, dapatkan bantuan proses 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. Untuk memanfaatkan fitur proses debug ini, pastikan 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).
- Sesuaikan penyiapan laporan error dengan menambahkan pelaporan keikutsertaan, log, kunci, dan pelacakan error non-fatal.
- Integrasikan dengan Google Play sehingga Anda dapat memfilter laporan error aplikasi Android menurut jalur Google Play secara langsung di dasbor Crashlytics. Dengan demikian, Anda dapat lebih memfokuskan dasbor pada build tertentu.