Firebase Crashlytics'i kullanmaya başlayın


Bu hızlı başlangıç kılavuzunda, Firebase Crashlytics SDK'sını kullanarak uygulamanızda Firebase Crashlytics'yı nasıl ayarlayacağınız açıklanmaktadır. Böylece, Firebase konsolunda kapsamlı kilitlenme raporları alabilirsiniz.

Crashlytics kurulumu için hem Firebase konsolunda hem de IDE'nizde (ör. Firebase yapılandırma dosyası ve Crashlytics SDK'sını ekleme) görevler yapmanız gerekir. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek üzere test kilitlenmesi zorlamanız gerekir.

Başlamadan önce

  1. Henüz yapmadıysanız Unity projenize Firebase'i ekleyin. Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.

  2. Önerilir: Kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan kullanıcı işlemlerini anlamak için izleme kaydı günlüklerini otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics seçeneğini etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse Firebase konsolunda > Proje ayarları bölümündeki Entegrasyonlar sekmesinden Google Analytics özelliğini etkinleştirebilirsiniz.

    • Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics etkinleştirin.

1. adım: Uygulamanıza Crashlytics SDK'sını ekleyin

Unity projenizi Firebase projenize kaydettiğinizde Firebase Unity SDK'sını indirmiş ve aşağıdaki adımlarda açıklanan paketleri eklemiş olabileceğinizi unutmayın.

  1. Firebase Unity SDK'sını indirin ve SDK'yı uygun bir konumda arşivden çıkarın. Firebase Unity SDK'sı platforma özgü değildir.

  2. Açık Unity projenizde Öğeler > Paket İçe Aktar > Özel Paket'e gidin.

  3. Arşivden çıkarılan SDK'dan Crashlytics SDK'sını (FirebaseCrashlytics.unitypackage) içe aktarmak için seçim yapın.

    Ayrıntılı hata mesajı günlüklerinden yararlanmak için uygulamanıza Firebase SDK'sını da ekleyin (FirebaseAnalytics.unitypackage). Firebase projenizde Google Analytics Google Analytics'in etkinleştirildiğinden emin olun.

  4. Unity Paketini İçe Aktar penceresinde İçe Aktar'ı tıklayın.

2. adım: Başlatma Crashlytics

  1. Yeni bir C# komut dosyası oluşturun ve bunu sahnedeki bir GameObject öğesine ekleyin.

    1. İlk sahnenizi açın, ardından GameObject adlı boş bir CrashlyticsInitializer oluşturun.

    2. Yeni nesnenin Inspector'unda Add Component'ı (Bileşen Ekle) tıklayın.

    3. CrashlyticsInit komut dosyanızı seçerek CrashlyticsInitializer nesnesine ekleyin.

  2. Komut dosyasının Start yönteminde Crashlytics öğesini başlatın:

    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()
        // ...
    }

3. adım: (Yalnızca Android) Sembol yüklemeye hazırlanma

Bu adım yalnızca IL2CPP kullanan Android uygulamaları için gereklidir.

  • Unity'nin Mono komut dosyası oluşturma arka ucunu kullanan Android uygulamaları için bu adımlar gerekli değildir.

  • Apple platformu uygulamaları için bu adımlar gerekli değildir. Çünkü Firebase Unity Editor eklentisi, sembolleri yüklemek üzere Xcode projenizi otomatik olarak yapılandırır.

Crashlytics'nın Unity SDK'sı 8.6.1+, NDK kilitlenme raporlamasını otomatik olarak içerir. Bu sayede Crashlytics, Android'de Unity CrashlyticsIL2CPP kilitlenmelerini otomatik olarak bildirebilir. Ancak Crashlytics kontrol panelinde yerel kitaplık kilitlenmeleri için sembolleştirilmiş yığın izlemelerini görmek istiyorsanız Firebase CLI'yı kullanarak derleme sırasında sembol bilgilerini yüklemeniz gerekir.

Sembol yüklemeye hazırlanmak için Firebase KSA'yı yükleme talimatlarını uygulayın.

CLI'yi daha önce yüklediyseniz en son sürüme güncellediğinizden emin olun.

4. adım: Projenizi oluşturun ve sembolleri yükleyin

iOS+ (Apple platformu)

  1. Build Settings (Derleme Ayarları) iletişim kutusunda projenizi bir Xcode çalışma alanına aktarın.

  2. Uygulamanızı oluşturun.

    Apple platformlarında Firebase Unity Editor eklentisi, her derleme için Crashlytics ile uyumlu bir sembol dosyası oluşturup Firebase sunucularına yüklemek üzere Xcode projenizi otomatik olarak yapılandırır.

Android

  1. Derleme Ayarları iletişim kutusunda aşağıdakilerden birini yapın:

    • Projenizi oluşturmak için Android Studio projesine aktarın veya

    • APK'nızı doğrudan Unity Editor'dan oluşturun.
      Oluşturmadan önce Oluşturma Ayarları iletişim kutusunda Create symbols.zip onay kutusunun işaretli olduğundan emin olun.

  2. Derlemeniz tamamlandıktan sonra Crashlyticsuyumlu bir sembol dosyası oluşturun ve aşağıdaki Firebase CLI komutunu çalıştırarak dosyayı Firebase sunucularına yükleyin:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID: Firebase Android uygulama kimliğiniz (paket adınız değil)
      Firebase Android uygulama kimliği örneği: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS: KSA tarafından oluşturulan sembol dosyasının yolu

      • Android Studio projesine aktarıldıysa: PATH/TO/SYMBOLS, uygulamayı Gradle veya Android Studio aracılığıyla oluşturduktan sonra dışa aktarılan proje kökünde oluşturulan unityLibrary/symbols dizinidir.

      • APK'yı doğrudan Unity'de oluşturduysanız: PATH/TO/SYMBOLS, derlemeniz tamamlandığında proje kök dizininde oluşturulan sıkıştırılmış sembol dosyasının yoludur (örneğin: myproject/myapp-1.0-v100.symbols.zip).

    Sembol dosyası oluşturma ve yükleme için Firebase CLI komutunu kullanmayla ilgili gelişmiş seçenekleri görüntüleme

    İşaret Açıklama
    --generator=csym

    Varsayılan Breakpad oluşturucu yerine eski cSYM sembol dosyası oluşturucuyu kullanır.

    Kullanılması önerilmez. Varsayılan Breakpad sembol dosyası oluşturucuyu kullanmanızı öneririz.

    --generator=breakpad

    Breakpad sembol dosyası oluşturucuyu kullanır.

    Sembol dosyası oluşturma için varsayılanın Breakpad olduğunu unutmayın. Bu işareti yalnızca derleme yapılandırmanıza symbolGenerator { csym() } eklediyseniz ve Breakpad'i kullanmak için bunu geçersiz kılmak istiyorsanız kullanın.

    --dry-run

    Sembol dosyalarını oluşturur ancak yüklemez.

    Bu işaret, gönderilen dosyaların içeriğini incelemek istediğinizde kullanışlıdır.

    --debug Ek hata ayıklama bilgileri sağlar.

5. adım: Kurulumu tamamlamak için testin kilitlenmesini zorlayın

Crashlytics ayarlarını tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için test kilitlenmesini zorlamanız gerekir.

  1. Mevcut bir GameObject bulun ve aşağıdaki komut dosyasını ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra test kilitlenmesine neden olur.

    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");
            }
        }
    }
  2. Uygulamanızı oluşturun ve derleme işlemi tamamlandıktan sonra sembol bilgilerini yükleyin.

    • iOS+: Firebase Unity Editor eklentisi, sembol dosyanızı yüklemek için Xcode projenizi otomatik olarak yapılandırır.

    • Android: IL2CPP kullanan Android uygulamalarınız için Firebase CLI crashlytics:symbols:upload komutunu çalıştırarak sembol dosyanızı yükleyin.

  3. Uygulamanızı çalıştırın. Uygulamanız çalıştıktan sonra cihaz günlüğünü izleyin ve CrashlyticsTester konumunda istisnanın tetiklenmesini bekleyin.

    • iOS+: Günlükleri Xcode'un alt bölmesinde görüntüleyin.

    • Android: Terminalde aşağıdaki komutu çalıştırarak günlükleri görüntüleyin: adb logcat.

  4. Test kilitlenmenizi görmek için Crashlytics kontrol paneline gidin.Firebase

    Konsolu yenilemenize rağmen beş dakika sonra hâlâ test kilitlenmesini görmüyorsanız uygulamanızın kilitlenme raporları gönderip göndermediğini görmek için hata ayıklama günlüğünü etkinleştirin.


Hepsi bu kadar. Crashlytics artık uygulamanızda kilitlenmeleri izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

  • Kilitlenme raporu kurulumunuzu özelleştirin (isteğe bağlı raporlama, günlükler, anahtarlar ve önemli olmayan hataların izlenmesi ekleyerek).
  • Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanalıyla filtreleyebilmek için Google Play ile entegrasyon yapın. Bu sayede, kontrol panelinizi belirli derlemelere daha iyi odaklayabilirsiniz.