Lihat yang baru dari Firebase di Google I/O 2022. Pelajari lebih lanjut

Mulai Menggunakan Firebase Crashlytics

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, Anda harus memaksa error pengujian untuk mengirim laporan error pertama ke Firebase.

Sebelum memulai

  1. Tambahkan Firebase ke project Unity, jika Anda belum melakukannya. Jika belum memiliki project Unity, Anda dapat mendownload aplikasi contoh.

  2. Direkomendasikan: Untuk mendapatkan fitur seperti pengguna bebas error, log breadcrumb, dan pemberitahuan kecepatan, Anda harus mengaktifkan Google Analytics di project Firebase.

    • Jika project Firebase yang ada belum mengaktifkan Google Analytics, Anda dapat melakukannya dari tab Integrations di > Project settings di Firebase console.

    • Jika Anda membuat project Firebase baru, aktifkan Google Analytics selama alur kerja pembuatan project.

Langkah 1: Tambahkan Firebase 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 Crashlytics.

  1. Download Firebase Unity SDK, lalu ekstrak SDK ke tempat yang mudah diakses.

    Firebase Unity SDK tidak dikhususkan untuk platform tertentu.

  2. Pada project Unity yang terbuka, buka Assets > Import Package > Custom Package.

  3. Dari SDK yang telah diekstrak, pilih untuk mengimpor Crashlytics SDK (FirebaseCrashlytics.unitypackage).

    Anda juga dapat mengimpor produk Firebase lain yang didukung.

  4. Di jendela Import Unity Package, klik Import.

Langkah 2: Inisialisasi Crashlytics

  1. Buat skrip C# baru, lalu tambahkan ke GameObject di scene.

    1. Buka scene pertama Anda, lalu buat GameObject kosong bernama CrashlyticsInitializer.

    2. Klik Add Component di Inspector untuk objek baru.

    3. Pilih skrip CrashlyticsInit Anda untuk menambahkannya ke objek CrashlyticsInitializer.

  2. Inisialisasi Crashlytics dalam metode Start skrip:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase
    using Firebase;
    
    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;
    
                    // 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-langkah di bagian 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 8.6.1+ Crashlytics secara otomatis menyertakan laporan error NDK, yang memungkinkan Crashlytics melaporkan error IL2CPP Unity di Android secara otomatis. Namun, untuk melihat pelacakan tumpukan yang tersimbolisasi untuk error library native di dasbor Crashlytics, Anda harus mengupload informasi simbol pada waktu build menggunakan Firebase CLI.

Selesaikan langkah-langkah berikut untuk melakukan penyiapan upload simbol:

  1. Ikuti petunjuk untuk menginstal Firebase CLI.

    Jika Anda sudah menginstal CLI, pastikan untuk mengupdate ke versi terbarunya.

  2. (hanya untuk aplikasi yang menggunakan Android API level 30+) Update template AndroidManifest.xml aplikasi Anda untuk menonaktifkan Pemberian Tag Pointer:

    1. Centang kotak untuk Android Player Settings > Publishing Settings > Build > Custom Main Manifest.

    2. Buka template manifes yang berada di Assets/Plugins/Android/AndroidManifest.xml.

    3. Tambahkan atribut berikut ke tag aplikasi: <application android:allowNativeHeapPointerTagging="false" ... />

Langkah 4: Build project Anda dan upload simbol

iOS+ (platform Apple)

  1. Dari dialog Build Settings, ekspor project Anda ke ruang kerja Xcode.

  2. Build 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

  1. Dari dialog Build Settings, lakukan salah satu langkah berikut:

    • Ekspor ke project Android Studio untuk mem-build project Anda; atau

    • Build APK langsung dari Unity Editor.
      Sebelum mem-build, pastikan kotak centang untuk Create symbols.zip dicentang pada dialog Build Settings.

  2. 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 mem-build aplikasi melalui Gradle atau Android Studio.

      • Mem-build APK langsung dari dalam Unity — PATH/TO/SYMBOLS adalah jalur file simbol zip 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 untuk 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 symbolGenerator { csym() } dalam konfigurasi build dan ingin menggantinya untuk menggunakan Breakpad.

    --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.

  1. 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 non-fatal errors 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");
            }
        }
    }
    
  2. Build 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.

  3. 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.

  4. Saat Anda melihat pengecualian di log perangkat, mulai ulang aplikasi agar dapat mengirim laporan error ke Firebase.

  5. 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

  • 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.