Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'i nasıl kuracağınızı açıklar.
Crashlytics'i kurmak, hem Firebase konsolunda hem de IDE'nizde (Firebase yapılandırma dosyası ve Crashlytics SDK'sı eklemek gibi) görevler gerektirir. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test kilitlenmesini zorlamanız gerekir.
Sen başlamadan önce
Henüz yapmadıysanız Unity projenize Firebase'i ekleyin . Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.
Önerilen : Kilitlenme, ölümcül olmayan veya ANR olayına yol açan 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 Google Analytics'i projenizin Entegrasyonlar sekmesinden etkinleştirebilirsiniz.
Firebase konsolunda > Proje ayarları .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'sını uygulamanıza ekleyin
Unity projenizi Firebase projenize kaydettiğinizde Firebase Unity SDK'sını zaten indirmiş ve aşağıdaki adımlarda açıklanan paketleri eklemiş olabileceğinizi unutmayın.
Firebase Unity SDK'yı indirin ve ardından SDK'yı uygun bir yerde açın. Firebase Unity SDK platforma özel değildir.
Açık Unity projenizde Varlıklar > Paketi İçe Aktar > Özel Paket'e gidin.
Sıkıştırılmış SDK'dan Crashlytics SDK'yı (
FirebaseCrashlytics.unitypackage
) içe aktarmayı seçin.İçerik haritası günlüklerinden yararlanmak için Google Analytics için Firebase SDK'sını da uygulamanıza ekleyin (
FirebaseAnalytics.unitypackage
). Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.Unity Paketini İçe Aktar penceresinde İçe Aktar öğesine tıklayın.
2. Adım : Crashlytics'i başlatın
Yeni bir C# betiği oluşturun ve bunu sahnedeki
GameObject
ekleyin.İlk sahnenizi açın, ardından
CrashlyticsInitializer
adında boş birGameObject
oluşturun.Yeni nesne için Denetçi'de Bileşen Ekle'ye tıklayın.
CrashlyticsInitializer
nesnesine eklemek içinCrashlyticsInit
komut dosyanızı seçin.
Betiğin
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ı oluşturma arka ucunu kullanan Android uygulamaları için bu adımlara gerek yoktur.
Apple platformu uygulamaları için bu adımlara gerek yoktur çünkü Firebase Unity Editor eklentisi, Xcode projenizi sembolleri yükleyecek şekilde otomatik olarak yapılandırır.
Crashlytics'in Unity SDK 8.6.1+ sürümü, Crashlytics'in Android'deki Unity IL2CPP çökmelerini otomatik olarak raporlamasına olanak tanıyan NDK kilitlenme raporlamasını otomatik olarak içerir. Ancak Crashlytics kontrol panelinde yerel kitaplık çökmelerine ilişkin sembolik yığın izlerini görmek için, Firebase CLI'yi kullanarak oluşturma sırasında sembol bilgilerini yüklemeniz gerekir.
Sembol yüklemeye yönelik ayarları yapmak için Firebase CLI'yi yükleme talimatlarını izleyin.
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)
Derleme Ayarları iletişim kutusundan projenizi bir Xcode çalışma alanına aktarın.
Uygulamanızı oluşturun.
Apple platformları için Firebase Unity Editor eklentisi, Xcode projenizi her yapı için Crashlytics uyumlu bir sembol dosyası oluşturacak ve Firebase sunucularına yükleyecek şekilde otomatik olarak yapılandırır.
Android
Derleme 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 Semboller.zip oluştur onay kutusunun işaretlendiğinden emin olun.
Derlemeniz tamamlandıktan sonra 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
Firebase Uygulama Kimliğinizi bulmanın iki yolu:
google-services.json
dosyanızdaki Uygulama Kimliğinizmobilesdk_app_id
değeridir; veyaFirebase konsolunda Proje ayarlarınıza gidin. Uygulamalarınız kartına doğru aşağı kaydırın ve ardından Uygulama Kimliğini bulmak için istediğiniz Firebase Uygulamasını tıklayın.
PATH/TO/SYMBOLS : CLI tarafından oluşturulan sembol dosyasının yolu
Bir Android Studio projesine 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şturduk — 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 kullanmaya ilişkin gelişmiş seçenekleri görüntüleyin
Bayrak Tanım --generator=csym
Varsayılan Breakpad oluşturucu yerine eski cSYM sembol dosyası oluşturucuyu kullanır
Kullanılması tavsiye edilmez. Varsayılan Breakpad sembol dosyası oluşturucusunu 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 eklediyseniz kullanın
build konfigürasyonunuzda symbolGenerator { csym() }
ve bunun yerine Breakpad'i kullanmak için onu geçersiz kılmak istiyorsunuz.--dry-run
Sembol dosyalarını oluşturur ancak 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 tamamlamak için test çökmesini zorunlu kılın
Crashlytics kurulumunu tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için test kilitlenmesini zorlamanız gerekir.
Mevcut bir
GameObject
bulun ve ona aşağıdaki komut dosyasını ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra testin çö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"); } } }
Uygulamanızı oluşturun ve derlemeniz tamamlandıktan 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ız için, sembol dosyanızı yüklemek üzere Firebase CLI
crashlytics:symbols:upload
komutunu çalıştırın.
Uygulamanızı çalıştırın. Uygulamanız çalışmaya başladı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
.
Test kilitlenmenizi görmek için Firebase konsolunun Crashlytics kontrol paneline gidin.
Konsolu yenilediyseniz ve beş dakika sonra hâlâ test kilitlenmesini göremiyorsanı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ızda çökme olup olmadığını 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
- (Önerilen) IL2CPP kullanan Android uygulamaları için, GWP-ASan raporlarını toplayarak yerel bellek hatalarının neden olduğu kilitlenmelerde hata ayıklama konusunda yardım alın. Bellekle ilgili bu hatalar, uygulamanızdaki güvenlik açıklarının önde gelen nedeni olan bellek bozulmasıyla ilişkilendirilebilir. Bu hata ayıklama özelliğinden yararlanmak için uygulamanızın Unity için en yeni Crashlytics SDK'sını (v10.7.0+) kullandığından ve GWP-ASan'ın açıkça etkinleştirildiğinden ( Android Uygulama Bildiriminizi değiştirmenizi gerektirir) emin olun.
- İsteğe bağlı raporlama, günlükler, anahtarlar ve önemli olmayan hataların takibini ekleyerek kilitlenme raporu kurulumunuzu özelleştirin .
- Android uygulamanızın kilitlenme raporlarını doğrudan Crashlytics kontrol panelinde Google Play parçasına göre filtreleyebilmek için Google Play ile entegrasyon yapın . Bu, kontrol panelinizi belirli yapılara daha iyi odaklamanıza olanak tanır.
,
Bu hızlı başlangıç, Firebase konsolunda kapsamlı kilitlenme raporları alabilmeniz için uygulamanızda Firebase Crashlytics SDK'sı ile Firebase Crashlytics'i nasıl kuracağınızı açıklar.
Crashlytics'i kurmak, hem Firebase konsolunda hem de IDE'nizde (Firebase yapılandırma dosyası ve Crashlytics SDK'sı eklemek gibi) görevler gerektirir. Kurulumu tamamlamak için ilk kilitlenme raporunuzu Firebase'e göndermek amacıyla bir test kilitlenmesini zorlamanız gerekir.
Sen başlamadan önce
Henüz yapmadıysanız Unity projenize Firebase'i ekleyin . Unity projeniz yoksa örnek bir uygulama indirebilirsiniz.
Önerilen : Kilitlenme, ölümcül olmayan veya ANR olayına yol açan 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 Google Analytics'i projenizin Entegrasyonlar sekmesinden etkinleştirebilirsiniz.
Firebase konsolunda > Proje ayarları .Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics'i etkinleştirin.
Adım 1 : Crashlytics SDK'yı uygulamanıza ekleyin
Birlik projenizi Firebase projenizle kaydettiğinizde, Firebase Unity SDK'yı zaten indirmiş ve aşağıdaki adımlarda açıklanan paketleri eklemiş olabileceğinizi unutmayın.
Firebase Unity SDK'yı indirin, ardından SDK'yı uygun bir yerde açın. Firebase Unity SDK platforma özgü değildir.
Açık Birlik Projenizde, Varlıklar > İçe Aktarma > Özel Paket'e gidin.
Rıksız SDK'dan Crashlytics SDK'yı (
FirebaseCrashlytics.unitypackage
) içe aktarmayı seçin.Breadbrumb günlüklerinden yararlanmak için Google Analytics için Firebase SDK'sını uygulamanıza (
FirebaseAnalytics.unitypackage
) ekleyin. Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.İçe Aktarma Birliği Paketi penceresinde İçe Aktar'ı tıklayın.
2. Adım : Çöküşü başlatın
Yeni bir C# komut dosyası oluşturun, ardından sahnedeki bir
GameObject
ekleyin.İlk sahnenizi açın, ardından
CrashlyticsInitializer
adlı boş birGameObject
oluşturun.Yeni nesne için müfettişte bileşen ekle'yi tıklayın.
CrashlyticsInitializer
nesnesine eklemek içinCrashlyticsInit
betiğinizi seçin.
Komut dosyasının
Start
yöntemindeki 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() // ... }
Adım 3 : (Yalnızca Android) Sembol Yükleme için Kurulun
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 ihtiyaç yoktur.
Apple platform uygulamaları için, Firebase Unity Editor eklentisi Xcode projenizi otomatik olarak sembolleri yükleyecek şekilde yapılandırdığı için bu adımlara ihtiyaç duyulmaz.
Crashlytics'in Unity SDK 8.6.1+, Crashlytics'in Android'deki Unity IL2CPP kazalarını otomatik olarak bildirmesine izin veren NDK Crash raporlamasını otomatik olarak içerir. Bununla birlikte, Crashlytics Dashboard'daki ana kütüphane çökmeleri için sembolik yığın izlerini görmek için, Firebase CLI'yi kullanarak yapı zamanında sembol bilgilerini yüklemeniz gerekir.
Sembol yüklemesi için ayarlanmak için Firebase CLI'yi yüklemek için talimatları izleyin.
CLI'yi zaten yüklediyseniz, en son sürümünü güncellediğinizden emin olun.
4. Adım : Projenizi oluşturun ve sembolleri yükleyin
iOS+ (Apple Platformu)
Derleme Ayarları iletişim kutusundan, projenizi bir Xcode çalışma alanına dışa aktarın.
Uygulamanızı oluşturun.
Apple platformları için, Firebase Unity Düzenleyici eklentisi, Xcode projenizi her bir derleme için Firebase sunucularına çarpışan bir şekilde uyumlu bir sembol dosyası oluşturacak ve yükleyecek şekilde otomatik olarak yapılandırır.
Android
Derleme Ayarları iletişim kutusundan aşağıdakilerden birini yapın:
Projenizi oluşturmak için bir Android stüdyosu projesine ihracat yapın; veya
APK'nızı doğrudan Unity Editor'dan oluşturun.
Oluşturmadan önce, Create Symbols.zip için onay kutusunun oluşturma ayarları iletişim kutusunda kontrol edildiğinden emin olun.
Yapınız bittikten sonra, çarpışan bir uyumlu 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ği:1:567383003300:android:17104a2ced0c9b9b
Firebase uygulama kimliğinizi bulmanın iki yolu:
google-services.json
dosyanızda, uygulama kimliğinizmobilesdk_app_id
değeridir; veyaFirebase konsolunda proje ayarlarınıza gidin. Uygulama kartınıza gidin, ardından uygulama kimliğini bulmak için istenen Firebase uygulamasını tıklayın.
PATH/TO/SYMBOLS : CLI tarafından oluşturulan sembol dosyasına giden yol
Bir Android Studio Projesi'ne dışa aktarılan - 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 inşa etti - PATH/TO/SYMBOLS yapınız bittiğinde proje kök dizini oluşturulan fermuarlı sembol dosyasının yoludur (örneğin::
myproject/myapp-1.0-v100.symbols.zip
).
Sembol dosya oluşturma ve yükleme için Firebase CLI komutunu kullanmak için gelişmiş seçenekleri görüntüleyin
Bayrak Tanım --generator=csym
Varsayılan BreakPad Jeneratörü yerine Eski CSYM Sembol Dosya Jeneratörünü kullanır
Kullanım için önerilmez. Varsayılan BreakPad Sembol Dosya Jeneratörünü kullanmanızı öneririz.
--generator=breakpad
BreakPad Sembol Dosya Üreticisini kullanır
Sembol dosyası üretimi için varsayılanın BreakPad olduğunu unutmayın. Bu bayrağı yalnızca eklediyseniz kullanın
symbolGenerator { csym() }
derleme yapılandırmanızda ve bunun yerine Breatpad kullanmak için bunu geçersiz kılmak istiyorsunuz.--dry-run
Sembol dosyalarını oluşturur, ancak yüklemez
Bu bayrak, gönderilen dosyaların içeriğini incelemek istiyorsanız kullanışlıdır.
--debug
Ek hata ayıklama bilgileri sağlar
Adım 5 : Bir test çöküşünü bitirmek için zorla zorlayın
Crashlytics'i kurmayı bitirmek ve Firebase konsolunun Crashlytics panosundaki ilk verileri görmek için bir test kazasını zorlamanız gerekir.
Mevcut bir
GameObject
bulun, ardından aşağıdaki komut dosyasını ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra bir test kazasına 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"); } } }
Uygulamanızı oluşturun ve yapı 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ız için, Firebase CLI
crashlytics:symbols:upload
.
Uygulamanızı çalıştırın. Uygulamanız çalıştıktan sonra cihaz günlüğünü izleyin ve
CrashlyticsTester
tetiklemek için istisnanın bekleyin.iOS+ : Xcode'un alt bölmesindeki günlükleri görüntüleyin.
Android : Terminalde aşağıdaki komutu çalıştırarak günlükleri görüntüleyin:
adb logcat
.
Test çökmenizi görmek için Firebase Konsolunun Crashlytics Gösterge Panosuna gidin.
Konsolu yenilediyseniz ve hala beş dakika sonra test kazasını görmüyorsanız, uygulamanızın çarpışma 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ı çökmeler için 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
- (Önerilen) IL2CPP kullanan Android uygulamaları için, GWP-ASAN raporlarını toplayarak yerel bellek hatalarının neden olduğu çökme kazalarında yardım kazanın. Bu bellekle ilgili hatalar, uygulama güvenlik açıklarının önde gelen nedeni olan uygulamanızdaki bellek bozulması ile ilişkilendirilebilir. Bu hata ayıklama özelliğinden yararlanmak için, uygulamanızın Unity için en son Crashlytics SDK'sını kullandığından emin olun (v10.7.0+) ve GWP-ASAN'ı açıkça etkinleştirir ( Android Uygulama Manifestinizi değiştirmenizi gerektirir).
- Android uygulamanızın Crash raporlarını Google Play Track tarafından doğrudan Crashlytics kontrol panelinde filtreleyebilmeniz için Google Play ile entegre edin . Bu, gösterge tablonuzu belirli yapılara daha iyi odaklamanızı sağlar.