| Platform seçin: | iOS+ Android Android NDK Flutter Unity |
Bu kılavuzda, Unity projenizde Firebase Crashlytics kullanmaya nasıl başlayacağınız açıklanmaktadır.
Uygulamanızda Firebase Crashlytics SDK'sını ayarladıktan sonra Firebase Console'da kapsamlı kilitlenme raporları alabilirsiniz.
Crashlytics kurulumu 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 test amaçlı bir kilitlenme oluşturarak ilk kilitlenme raporunuzu Firebase'e göndermeniz gerekir.
Başlamadan önce
Henüz yapmadıysanız Unity projenize Firebase'i ekleyin. Unity projeniz yoksa örnek uygulama indirebilirsiniz.
Önerilen: Kilitlenme, önemli olmayan hata veya ANR etkinliğine yol açan kullanıcı işlemlerini anlamak için breadcrumb kayıtlarını otomatik olarak almak istiyorsanız Firebase projenizde Google Analytics özelliğini etkinleştirmeniz gerekir.
Yeni bir Firebase projesi oluşturuyorsanız proje oluşturma iş akışı sırasında Google Analytics hizmetini etkinleştirin.
Google Analytics etkinleştirilmemiş mevcut bir Firebase projesi kullanıyorsanız Firebase konsolunun
Ayarlar > Entegrasyonlar sayfasında etkinleştirebilirsiniz.
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.
Firebase Unity SDK'sını indirin ve uygun bir yere açın. Firebase Unity SDK'sı platforma özgü değildir.
Açık Unity projenizde Assets (Öğeler) > Import Package (Paketi İçe Aktar) > Custom Package'a (Özel Paket) gidin.
Sıkıştırılmış dosyadan çıkarılan SDK'dan Crashlytics SDK'sını (
FirebaseCrashlytics.unitypackage) içe aktarmayı seçin.Breadcrumb kayıtlarından yararlanmak için uygulamanıza Google Analytics için Firebase SDK'sını da ekleyin (
FirebaseAnalytics.unitypackage). Firebase projenizde Google Analytics'in etkinleştirildiğinden emin olun.Unity Paketini İçe Aktar penceresinde İçe Aktar'ı tıklayın.
2. adım: Crashlytics başlatın
Yeni bir C# komut dosyası oluşturun ve bunu sahnedeki bir
GameObjectöğesine ekleyin.İlk sahnenizi açın, ardından
CrashlyticsInitializeradında boş birGameObjectoluşturun.Yeni nesne için Inspector'da (Denetçi) Add Component'ı (Bileşen Ekle) tıklayın.
CrashlyticsInitnesnesine eklemek içinCrashlyticsInitializerkomut dosyanızı seçin.
Komut dosyasının
Startyö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 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ımlar gerekli değildir.
Apple platformu uygulamaları için bu adımlara gerek yoktur. Firebase Unity Editor eklentisi, Xcode projenizi sembolleri yükleyecek şekilde otomatik olarak yapılandırır.
Unity için Crashlytics SDK'sı (8.6.1 ve sonraki sürümler), NDK kilitlenme raporlamasını otomatik olarak içerir. Bu sayede Crashlytics, Android'deki Unity IL2CPP kilitlenmelerini otomatik olarak raporlayabilir. Ancak Crashlytics kontrol panelinde yerel kitaplık kilitlenmeleri için sembolize edilmiş yığın izlemeleri görmek istiyorsanız derleme sırasında Firebase CLI'yı kullanarak sembol bilgilerini yüklemeniz gerekir.
Sembol yükleme işlemini ayarlamak için Firebase KSA'yı yükleme talimatlarını uygulayın.
CLI'yı zaten yüklediyseniz en son sürümüne güncellediğinizden emin olun.
4. adım: Projenizi derleyin ve sembolleri yükleyin
iOS+ (Apple platformu)
Build Settings (Derleme Ayarları) iletişim kutusundan projenizi bir Xcode çalışma alanına aktarın.
Uygulamanızı geliştirin.
Apple platformlarında Firebase Unity Editor eklentisi, Xcode projenizi her derleme için Crashlytics ile uyumlu bir sembol dosyası oluşturup Firebase sunucularına yükleyecek şekilde otomatik olarak yapılandırır.
Android
Build Settings (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.
Derleme işleminden önce Derleme Ayarları iletişim kutusunda symbols.zip oluştur onay kutusunun işaretli olduğundan emin olun.
Derlemeniz tamamlandıktan sonra Crashlytics ile uyumlu bir sembol dosyası oluşturun ve aşağıdaki Firebase CLI komutunu çalıştırarak dosyayı 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:17104a2ced0c9b9bPATH/TO/SYMBOLS: KSA tarafından oluşturulan sembol dosyasının yolu
Android Studio projesine aktarıldı: PATH/TO/SYMBOLS, uygulamayı Gradle veya Android Studio aracılığıyla derledikten sonra dışa aktarılan proje kökünde oluşturulan
unityLibrary/symbolsdizinidir.APK'yı doğrudan Unity'den derlediyseniz: PATH/TO/SYMBOLS, derleme işleminiz tamamlandığında projenin 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ı üretme ve yükleme için Firebase CLI komutunu kullanmayla ilgili gelişmiş seçenekleri görüntüleyin.
İşaretle Açıklama --generator=csymVarsayılan Breakpad oluşturma aracı yerine eski cSYM sembol dosyası üretme aracını kullanır.
Kullanılması önerilmez. Varsayılan Breakpad sembol dosyası oluşturucuyu kullanmanızı öneririz.
--generator=breakpadBreakpad sembol dosyası oluşturucuyu kullanır.
Sembol dosyası üretme için varsayılan ayarın Breakpad olduğunu unutmayın. Bu işareti yalnızca derleme yapılandırmanıza
eklediyseniz ve bunun yerine Breakpad'i kullanmak için geçersiz kılmak istiyorsanız kullanın.symbolGenerator { csym() }--dry-runSembol dosyalarını oluşturur ancak yüklemez.
Gönderilen dosyaların içeriğini incelemek istiyorsanız bu işaret yararlı olur.
--debugEk hata ayıklama bilgileri sağlar.
5. adım: Kurulumu tamamlamak için test amaçlı bir kilitlenme tetikleyin
Crashlytics kurulumunu tamamlamak ve Firebase konsolunun Crashlytics kontrol panelinde ilk verileri görmek için test amaçlı bir kilitlenme zorlamanız gerekir.
Mevcut bir
GameObjectbulun ve aşağıdaki komut dosyasını ekleyin. Bu komut dosyası, uygulamanızı çalıştırdıktan birkaç saniye sonra test amaçlı bir kilitlenmeye 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ı derleyin ve derleme işleminiz tamamlandıktan sonra sembol bilgilerini yükleyin.
iOS+: Firebase Unity Editor eklentisi, sembol dosyanızı yüklemek için Xcode projenizi otomatik olarak yapılandırır.
Android: IL2CPP kullanan Android uygulamalarınızda sembol dosyanızı yüklemek için Firebase CLI
crashlytics:symbols:uploadkomutunu ç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
CrashlyticsTestertarafından tetiklenmesini bekleyin.iOS+: 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.
Firebase konsolunda DevOps ve Etkileşim > Crashlytics kontrol paneline giderek test kilitlenme raporunuzu kontrol edin.
Konsolu yenilediyseniz ve beş dakika sonra 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üğü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
(Önerilir) IL2CPP kullanan Android uygulamalarında, GWP-ASan raporlarını toplayarak yerel bellek hatalarından kaynaklanan kilitlenmelerde hata ayıklama konusunda yardım alın. Bellekle ilgili bu hatalar, uygulamanızdaki bellek bozulmasıyla ilişkili olabilir. Bellek bozulması, uygulama güvenliği açıklarının başlıca nedenidir. 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 emin olun (Android uygulama manifest dosyanızı değiştirmeniz gerekir).
Onay raporlaması, günlükler, anahtarlar ve önemli olmayan hataların takibini ekleyerek kilitlenme raporu kurulumunuzu özelleştirin.
Verilerinizi BigQuery veya Cloud Logging platformuna aktararak verilerinizi sorgulama, özel kontrol panelleri oluşturma ve özel uyarılar ayarlama gibi gelişmiş analiz ve özelliklerden yararlanın.