Firebase Crashlytics'i kullanmaya başlayın


Bu hızlı başlangıç kılavuzunda, Firebase konsolunda kapsamlı kilitlenme raporları alabilmek için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'ü nasıl ayarlayacağınız açıklanmaktadır.

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

Başlamadan önce

  1. Henüz yapmadıysanız Firebase'i ekleyin. Unity projenize ekleyeceğiz. Unity projeniz yoksa şunu indirebilirsiniz: örnek uygulama.

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

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

    • Yeni bir Firebase projesi oluşturuyorsanız Google Analytics özelliğini etkinleştirin müzakere tekniği de eklediniz.

1. Adım: Crashlytics SDK'sını uygulamanıza ekleyin

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

  1. Firebase Unity SDK'sını indirin, ardından SDK'yı uygun bir yerde sıkıştırılmış dosyayı açı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.

    , içerik haritası günlükleri uygulamanıza Google Analytics için Firebase SDK'sını da ekleyin (FirebaseAnalytics.unitypackage). Şunlardan emin olun: Google Analytics etkin Firebase projenizde.

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

2. Adım: Crashlytics uygulamasını başlatın

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

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

    2. Yeni nesnenin İnceleyici bölümünde Bileşen Ekle'yi tıklayın.

    3. CrashlyticsInit komut dosyanızı seçerek CrashlyticsInitializer nesne algılandı.

  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) Simge yükleme için hazırlık yapın

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

  • Unity’nin Mono kodlama arka ucunu kullanan Android uygulamaları için bu adımlar gerekir.

  • Apple platform uygulamaları için bu adımlar gerekmez. Çünkü Firebase Unity Düzenleyici eklentisi, Xcode projenizi otomatik olarak simge yükleyecek şekilde yapılandırır.

Crashlytics’nin Unity SDK'sı 8.6.1+ otomatik olarak NDK kilitlenme raporunu içerir. Bu sayede Crashlytics, Unity'yi otomatik olarak bildirebilir IL2PBM kilitlenmesine neden oluyor. Ancak yerel kitaplıkta simgeselleştirilmiş yığın izlemeleri görmek isterseniz Crashlytics kontrol panelinde kilitleniyorsa, sembol bilgilerini şuradan yüklemeniz gerekir: Firebase KSA'yı kullanarak derleme süresini ayarlayın.

Simge yükleme için gerekli ayarları yapmak üzere 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 semboller yükleyin

iOS+ (Apple platformu)

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

  2. Uygulamanızı oluşturun.

    Apple platformları için Firebase Unity Editor eklentisi otomatik olarak Xcode projenizi bir kod oluşturmak ve yüklemek için Her derleme için Firebase sunucularına Crashlytics uyumlu sembol dosyası gönderme.

Android

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

    • Projenizi derlemek için bir Android Studio projesine aktarın veya

    • APK'nızı doğrudan Unity Editor'dan oluşturun.
      . Oluşturmadan önce, Simgeler.zip Oluştur'un onay kutusunun seçili olduğundan emin olun. Build Settings (Derleme Ayarları) iletişim kutusunda kontrol edildi.

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

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

    • PATH/TO/SYMBOLS: KSA

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

      • APK'yı doğrudan Unity içinden derledi: PATH/TO/SYMBOLS, sıkıştırılmış simge dosyasının yoludur derlemeniz tamamlandığında proje kök dizininde oluşturulur (örneğin: myproject/myapp-1.0-v100.symbols.zip) ekleyebilirsiniz.

    Sembol dosyası oluşturma ve yükleme için Firebase CLI komutu

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

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

    Kullanılması önerilmez. Varsayılan değeri kullanmanızı öneririz Breakpad simge dosyası oluşturma aracı.

    --generator=breakpad

    Breakpad simge dosyası oluşturma aracını kullanır.

    Sembol dosyası oluşturmak için varsayılan olarak Breakpad'in kullanıldığını unutmayın. Bu işareti yalnızca symbolGenerator { csym() } veya kullanmak için bunu geçersiz kılmak isterseniz Bunun yerine Breakpad'i kullanın.

    --dry-run

    Simge dosyalarını oluşturur ancak yüklemez

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

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

5. adım: Kurulumu tamamlamak için test kilitlenmesini zorlama

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

  1. Mevcut bir GameObject bulun ve ardından bu öğeye aşağıdaki komut dosyasını ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra testin 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ı derleyin ve derleme işleminiz tamamlandıktan sonra simge bilgilerini yükleyin.

    • iOS ve sonraki sürümler: Firebase Unity Editor eklentisi, Xcode projenizi sembol dosyanızı yükleyecek şekilde otomatik olarak yapılandırır.

    • Android: IL2CPP kullanan Android uygulamalarınız için Firebase CLI crashlytics:symbols:upload komutunu kullanarak simge dosyası olarak da kaydedebilirsiniz.

  3. Uygulamanızı çalıştırın. Uygulamanız çalışırken cihaz günlüğünü izleyin ve istisnanın CrashlyticsTester'den tetiklenmesini bekleyin.

    • iOS ve sonraki sürümler: 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 Firebase konsolunun Crashlytics kontrol paneline gidin.

    Konsolu yenilediyseniz ve test kilitlenmesini hâlâ görmüyorsanız beş dakika sonra hata ayıklama günlük kaydını etkinleştirme uygulamanızın kilitlenme raporu gönderip göndermediğini kontrol edin.


Hepsi bu kadar. Crashlytics, uygulamanızı kilitlenmeler açısından izliyor. Tüm rapor ve istatistiklerinizi görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

  • Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanalına göre filtreleyebilmek için Google Play ile entegrasyon yapın. Bu sayede kontrol panelinizde belirli derlemelere daha iyi odaklanabilirsiniz.