Firebase Crashlytics'i kullanmaya başlayın

Bu hızlı başlangıç kılavuzunda, Firebase Crashlytics ayarlarını uygulamanızda nasıl yapacağınız açıklanmaktadır. Kapsamlı kilitlenmeleri elde edebilmek için Firebase Crashlytics SDK'sı ile Firebase konsolunda bulabilirsiniz.

Crashlytics kurulumu için hem Firebase konsolunda hem de (ör. Firebase yapılandırma dosyası ve Crashlytics SDK) kaldırın. Kurulumu tamamlamak için bir test kilitlenmesini, ilk Firebase'e kilitlenme raporu gönderir.

Başlamadan önce

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

  2. Önerilen: Otomatik içerik haritası günlükleri Kilitlenme, önemli olmayan veya ANR etkinliğiyle sonuçlanan kullanıcı işlemlerini anlamak için Firebase projenizde Google Analytics modunu etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics yoksa Google Analytics öğesini şuradan etkinleştirebilirsiniz: hesabınızın Entegrasyonlar > Proje ayarları Firebase konsolunda kontrol edebilirsiniz.

    • 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ı zaten indirmiş ve paketleri eklemiş olabilir öğrenebilirsiniz.

  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 özel değildir.

  2. Açık Unity projenizde şuraya gidin: Öğeler > Paketi İçe Aktar > Özel Paket.

  3. Sıkıştırılmamış SDK'dan Crashlytics SDK'sını içe aktarmak için seçim yapın (FirebaseCrashlytics.unitypackage).

    , 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, ardından bunu sahnedeki bir GameObject öğesine ekleyin.

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

    2. Yeni nesnenin İnceleyici'de 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) Sembol yükleme için gerekli ayarları 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 gerekli değildir. Çü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.

Sembol yükleme işlemini ayarlamak için aşağıdaki talimatları uygulayın: Firebase CLI'yı yükleyin.

KSA'yı zaten yüklediyseniz en son sürümüne güncelleyin.

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 oluşturmak için bir Android Studio projesine aktarma; 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ığında Crashlytics ile uyumlu bir simge oluşturun dosyasını açın ve aşağıdaki komutu çalıştırarak bunu Firebase sunucularına yükleyin Firebase CLI komutu:

    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ıldı — PATH/TO/SYMBOLS, unityLibrary/symbols dizinidir, Bu, uygulamayı derledikten sonra dışa aktarılan proje kökünde oluşturulur Android Studio aracılığıyla yapabilirsiniz.

      • 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

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

    varsayılan Breakpad oluşturucu

    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

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

    Bu işaret, videonun içeriğini incelemek isterseniz gönderilir.

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

5. Adım: Kurulumu tamamlamak için test kilitlenmesini zorunlu kılın

Crashlytics kurulumunu tamamlamak ve ilk verileri Firebase konsolunun Crashlytics kontrol paneli, testi zorunlu kılmanız gerekiyor olabilir.

  1. Mevcut bir GameObject bulun ve ardından aşağıdaki komut dosyasını buna 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. Derlemeniz tamamlandıktan sonra uygulamanızı derleyin ve simge bilgilerini yükleyin.

    • iOS+: Firebase Unity Editor eklentisi Xcode projesi yükleyin.

    • 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ışmaya başladıktan sonra cihaz günlüğünü izleyin ve CrashlyticsTester öğesinden tetiklenecek istisna.

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

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

  4. Şu sayfanın Crashlytics kontrol paneline gidin: Firebase konsolunda test kilitlenmenizi görebilirsiniz.

    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 artık uygulamanızı kilitlenmelere karşı izliyor. Görüntülemek ve incelemek için Crashlytics kontrol panelini ziyaret edin tüm raporlarınızdan ve istatistiklerinizden yararlanır.

Sonraki adımlar

  • (Önerilen) IL2CPP kullanan Android uygulamaları için yerel bellek hatalarının neden olduğu kilitlenmeleri ayıklama konusunda yardım almak için toplama GWP-ASan raporları hakkında daha fazla bilgi edinin. Bellekle ilgili bu hatalar, Bu, uygulama güvenliği açıklarının önde gelen nedenidir. Bu hata ayıklama özelliğinden yararlanmak için uygulamanızın Unity (v10.7.0+) için en yeni Crashlytics SDK'sını kullanır ve GWP-ASan açıkça etkinleştirildi ( Android uygulama manifestinizi değiştirin).
  • Google Play ile entegre ederek Android uygulamanızın kilitlenme raporlarını Google Play kanalına göre filtreleyebilirsiniz. Crashlytics kontrol paneli. Bu sayede kontrol panelinizde belirli derlemelere daha iyi odaklanabilirsiniz.