Firebase Crashlytics'i kullanmaya başlayın

Bu hızlı başlangıç kılavuzunda, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK'yı kullanarak Firebase Crashlytics'i nasıl kuracağınız açıklanmaktadır.

Crashlytics'i kurmak hem Firebase konsolunda hem de IDE'nizde görevler (Firebase yapılandırma dosyası ve Crashlytics SDK eklemek gibi) gerektirir. Kurulumu tamamlamak için bir kilitlenme testi uygulayarak ilk kilitlenme raporunuzu Firebase'e göndermeniz gerekir.

Başlamadan önce

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

  2. Önerilen: Kilitlenme, önemli olmayan hata veya ANR etkinliğine neden olan kullanıcı işlemlerini anlamak amacıyla içerik haritası günlüklerini otomatik olarak almak için Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse Firebase konsolundaki > Proje ayarları'nda yer alan Entegrasyonlar sekmesinden Google Analytics'i etkinleştirebilirsiniz.

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

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

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

  1. Firebase Unity SDK'yi indirin, ardından SDK'yı uygun bir yerde arşivden çıkarın. Firebase Unity SDK platforma özgü değildir.

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

  3. Arşivden çıkarılan SDK'dan Crashlytics SDK'yı (FirebaseCrashlytics.unitypackage) içe aktarmayı seçin.

    İçerik haritası günlüklerinden yararlanmak amacıyla Google Analytics için Firebase SDK'sını da uygulamanıza (FirebaseAnalytics.unitypackage) ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.

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

2. Adım: Crashlytics'i başlatın

  1. Yeni bir C# komut dosyası oluşturup bunu sahnedeki bir GameObject komut dosyasına ekleyin.

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

    2. Yeni nesne için İnceleyici'de Bileşen Ekle'yi tıklayın.

    3. CrashlyticsInitializer nesnesine eklemek için CrashlyticsInit komut dosyanızı seçin.

  2. Komut dosyasının Start yönteminde Crashlytics'i 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 kurulumunuzu yapın

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

  • Unity'nin Mono komut dosyası arka ucunu kullanan Android uygulamaları için bu adımlara gerek yoktur.

  • Firebase Unity Editor eklentisi Xcode projenizi sembol yüklemek üzere otomatik olarak yapılandırdığından, Apple platform uygulamaları için bu adımlara gerek yoktur.

Crashlytics'in Unity SDK 8.6.1 ve sonraki sürümleri, NDK kilitlenme raporlarını otomatik olarak içerir. Bu da Crashlytics'in Android'de Unity IL2CPP kilitlenmelerini otomatik olarak bildirmesini sağlar. Ancak yerel kitaplık kilitlenmeleriyle ilgili sembolik yığın izlerini Crashlytics kontrol panelinde görmek için, derleme zamanında Firebase CLI'ı kullanarak sembol bilgilerini yüklemeniz gerekir.

Simge yükleme özelliğini ayarlamak için Firebase CLI'yı yükleme talimatlarını uygulayın.

KSA'yı zaten yüklediyseniz en son sürümüne güncellediğinizden emin olun.

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

iOS+ (Apple platformu)

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

  2. Uygulamanızı oluşturun.

    Firebase Unity Editor eklentisi Apple platformlarında her derleme için Xcode projenizi otomatik olarak yapılandırarak Crashlytics ile uyumlu bir sembol dosyası oluşturur ve Firebase sunucularına yükler.

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.
      Derlemeden önce, Derleme Ayarları iletişim kutusunda Simgeler.zip oluştur onay kutusunun işaretli olduğundan emin olun.

  2. Derlemeniz tamamlandıktan sonra Crashlytics ile uyumlu bir sembol 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 Uygulama Kimliğiniz (paket adınız değil)
      Örnek Firebase Android Uygulama Kimliğiniz: 1:567383003300:android:17104a2ced0c9b9b

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

      • Bir Android Studio projesine aktarılan PATH/TO/SYMBOLS, uygulamayı Gradle veya Android Studio aracılığıyla oluşturmanızdan sonra dışa aktarılan projenin kökünde oluşturulan unityLibrary/symbols dizinidir.

      • APK'yı doğrudan Unity içinden derleyin: PATH/TO/SYMBOLS, derlemeniz tamamlandığında proje kök dizininde oluşturulan sıkıştırılmış simge 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üleyin

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

    Varsayılan Breakpad oluşturucu yerine eski cSYM sembol dosyası oluşturma aracını kullanır

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

    --generator=breakpad

    Breakpad sembol dosyası oluşturucuyu kullanır

    Sembol dosyası oluşturma işlemi için varsayılan değerin Breakpad olduğunu unutmayın. Bu işareti yalnızca derleme yapılandırmanıza symbolGenerator { csym() } eklediyseniz ve bunun yerine Breakpad'i kullanmak için 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 kilitlenme testini zorlayın

Crashlytics'in kurulumunu tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için bir kilitlenme testi uygulamanız gerekir.

  1. Mevcut bir GameObject bulup aşağıdaki komut dosyasına 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ı derleyin ve derlemeniz bittikten sonra sembol bilgilerini yükleyin.

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

    • Android: IL2CPP kullanan Android uygulamalarınızda simge dosyanızı yüklemek için Firebase CLI crashlytics:symbols:upload komutunu çalıştırın.

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

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

    • Android: Terminalde şu 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 beş dakika geçmesine rağmen test kilitlenmesini hâlâ görmüyorsanız uygulamanızın kilitlenme raporları gönderip göndermediğini görmek için hata ayıklama günlük kaydını etkinleştirin.


Hepsi bu kadar! Crashlytics artık uygulamanızı kilitlenmelere karşı izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntüleyip incelemek için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

  • Google Play ile entegre ederek Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play kanalına göre filtreleyebilirsiniz. Bu sayede kontrol panelinizi belirli derlemelere daha iyi odaklayabilirsiniz.