了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Firebase Crashlytics'i kullanmaya başlayın

Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK ile Firebase Crashlytics'i nasıl kuracağınızı açıklar.

Crashlytics'i kurmak, hem Firebase konsolunda hem de IDE'nizde görevler gerektirir (bir Firebase yapılandırma dosyası ve Crashlytics SDK eklemek gibi). Kurulumu tamamlamak için, ilk kilitlenme raporunuzu Firebase'e göndermek üzere bir test çökmesini zorlamanız gerekir.

Sen başlamadan önce

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

  2. Önerilen : Kilitlenme sorunu yaşamayan kullanıcılar, içerik haritası günlükleri ve hız uyarıları gibi özellikleri almak için Firebase projenizde Google Analytics'i etkinleştirmeniz gerekir.

    • Mevcut Firebase projenizde Google Analytics etkin değilse, Google Analytics'i Firebase konsolundaki Entegrasyonlar > Proje ayarları sekmesinden 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 kaydettirdiğinizde Firebase Unity SDK'yı zaten indirmiş ve Crashlytics paketini eklemiş olabileceğinizi unutmayın.

  1. Firebase Unity SDK'yı indirin, ardından SDK'yı uygun bir yere sıkıştırın.

    Firebase Unity SDK, platforma özgü değildir.

  2. Açık Unity projenizde Assets > Import Package > Custom Package seçeneğine gidin.

  3. Sıkıştırılmış SDK'dan, Crashlytics SDK'yı ( FirebaseCrashlytics.unitypackage ) içe aktarmayı seçin.

    Desteklenen diğer Firebase ürünlerini de içe aktarabilirsiniz.

  4. Unity Paketini İçe Aktar penceresinde, İçe Aktar seçeneğine tıklayın.

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

  1. Yeni bir C# betiği oluşturun, ardından bunu sahnedeki bir GameObject ekleyin.

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

    2. Yeni nesne için Denetçide Bileşen Ekle'ye tıklayın.

    3. CrashlyticsInitializer nesnesine eklemek için CrashlyticsInit betiğinizi 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) Sembol yükleme için kurulum 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ımlar gerekli değildir.

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

Crashlytics'in Unity SDK 8.6.1+ ürünü, Crashlytics'in Android'de Unity IL2CPP çökmelerini otomatik olarak bildirmesine olanak tanıyan NDK kilitlenme raporlamasını otomatik olarak içerir. Ancak, Crashlytics kontrol panelinde yerel kitaplık çökmelerine ilişkin simgeleştirilmiş yığın izlerini görmek için, oluşturma sırasında Firebase CLI'yi kullanarak simge bilgilerini yüklemeniz gerekir.

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

CLI'yi zaten yüklediyseniz, en son sürümüne güncellediğinizden emin olun.

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

iOS+ (Apple platformu)

  1. Yapı Ayarları iletişim kutusundan projenizi bir Xcode çalışma alanına aktarın.

  2. Uygulamanızı oluşturun.

    Apple platformları için Firebase Unity Editor eklentisi, Xcode projenizi Crashlytics uyumlu bir sembol dosyası oluşturacak ve her yapı için Firebase sunucularına yükleyecek şekilde otomatik olarak yapılandırır.

Android

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

    • Projenizi oluşturmak için bir 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 Symbols.zip oluştur onay kutusunun işaretlendiğinden emin olun.

  2. Derlemeniz bittiğinde, Crashlytics uyumlu bir sembol dosyası oluşturun ve aşağıdaki Firebase CLI komutunu çalıştırarak bunu 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ği: 1:567383003300:android:17104a2ced0c9b9b

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

      • Bir Android Studio projesine dışa aktarıldı — 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 içinden oluşturun — PATH/TO/SYMBOLS derlemeniz bittiğinde 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 karşıya yükleme için Firebase CLI komutunu kullanmaya yönelik gelişmiş seçenekleri görüntüleyin

    bayrak Tanım
    --generator=csym

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

    Kullanım için ö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 bayrağı yalnızca yapı 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 bunları karşıya yüklemez

    Gönderilen dosyaların içeriğini incelemek istiyorsanız bu bayrak kullanışlıdır.

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

5. Adım : Kurulumu bitirmek için bir test çökmesine zorlayın

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

  1. Mevcut bir GameObject bulun ve buna aşağıdaki betiği ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra bir test çökmesine 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 yapınız tamamlandıktan sonra sembol bilgilerini yükleyin.

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

    • Android : IL2CPP kullanan Android uygulamalarınızda, sembol 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ıştıktan sonra cihaz günlüğünü izleyin ve istisnanın CrashlyticsTester 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 hala 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 .


Ve bu kadar! Crashlytics artık uygulamanızı çökmelere karşı izliyor. Tüm raporlarınızı ve istatistiklerinizi görüntülemek ve araştırmak için Crashlytics kontrol panelini ziyaret edin.

Sonraki adımlar

  • Google Play ile entegre edin, böylece Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play izine göre filtreleyebilirsiniz. Bu, kontrol panelinizi belirli yapılara daha iyi odaklamanızı sağlar.