Crashlytics kontrol panelinde, bir sorunu tıklayıp ayrıntılı etkinlik raporu alabilirsiniz. Bu raporları, uygulamanızda neler olduğunu ve Crashlytics'e bildirilen etkinliklerle ilgili koşulları daha iyi anlamanıza yardımcı olacak şekilde özelleştirebilirsiniz.
Yakalanan istisnaları ve yakalamayan istisnaları Crashlytics'e bildirin.
Bellek bozulması sorunlarını ayıklamak için GWP-ASan raporlarını ekleyin.
Uygulamanızı kullanarak özel anahtarları, özel günlük mesajlarını ve kullanıcı tanımlayıcılarını kaydedin.
Uygulamanız Google Analytics için Firebase SDK'sını kullanıyorsa içerik haritası günlüklerini otomatik olarak alın. Bu günlükler, uygulamanızda Crashlytics tarafından toplanan bir etkinliğe yol açan kullanıcı işlemlerini görmenizi sağlar.
Otomatik kilitlenme raporlamasını kapatın ve kullanıcılarınız için kayıt bildirmeyi etkinleştirin. Crashlytics'in varsayılan olarak uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak topladığını unutmayın.
Rapor istisnaları
Rapor yakalanan istisnalar
Beklenen istisnalarınız varsa Crashlytics SDK'sının bunları önemli olmayan etkinlikler olarak bildirmesini sağlayabilirsiniz. Bu etkinlikler cihazda günlüğe kaydedilir ve ardından bir sonraki önemli etkinlik raporuyla birlikte veya son kullanıcı oyunu yeniden başlattığında gönderilir.
Aşağıdaki yöntemi kullanarak C# dilinde istisnaları günlüğe kaydedebilirsiniz:
Crashlytics.LogException(Exception ex);
Oyununuzun dene-yakala bloklarındaki beklenen istisnaları günlüğe kaydedebilirsiniz:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
Yakalanmayan istisnaları bildir
Oyununuzu kilitlenmeyen yakalanmamış istisnalar (örneğin, oyun mantığında yakalanmamış C# istisnaları) için Crashlytics SDK'sının bunları önemli etkinlik olarak bildirmesini sağlayabilirsiniz. Bunun için Crashlytics.ReportUncaughtExceptionsAsFatal
özelliğini, Unity projenizde Crashlytics'i ilk kullanıma hazırlar amacıyla true
olarak ayarlayın.
Bu etkinlikler, son kullanıcının oyunu yeniden başlatmasına gerek kalmadan gerçek zamanlı olarak Crashlytics'e raporlanır.
Yakalanmayan bu istisnaları önemli etkinlik olarak bildirmeniz, kilitlenme sorunu yaşamayan kullanıcı istatistiklerinize ve hız uyarılarına dahil edileceği anlamına gelir.
Yerel kilitlenmelerin her zaman önemli etkinlik olarak raporlandığını unutmayın. Bu etkinlikler cihazda günlüğe kaydedilir ve son kullanıcı oyunu yeniden başlattığında birlikte gönderilir.
void Start() { // Since there is no try-block surrounding this call, if an exception is thrown, // it is considered unexpected. // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true` // will ensure that such cases are reported as fatals. thirdPartyMethodThatMayThrow(); }
Bellek bozulması sorunlarında hata ayıklamak için GWP-ASan raporlarını dahil etme
IL2CPP kullanan Android uygulamalarında Crashlytics, GWP-ASan raporlarını toplayarak yerel bellek hatalarının neden olduğu kilitlenmelerde hata ayıklamanıza yardımcı olabilir. Bellekle ilgili bu hatalar, uygulamanızdaki bellek bozulmasıyla ilişkilendirilebilir. Bu durum, uygulama güvenliği açıklarının önde gelen nedenidir.
Crashlytics kontrol panelinde bir sorunun ayrıntılarını tıkladığınızda, bu verileri yeni bir "Bellek yığın izlemeleri" sekmesinde görüntüleyebilirsiniz.
Bu verilerle ilgili tüm sorunları hızlı bir şekilde görüntülemek için yeni "GWP-ASan raporu" sinyalini ve filtresini de kullanabilirsiniz.
Uygulamanızda Unity için en son Crashlytics SDK'yı (v10.7.0+) kullanıyorsa ve GWP-ASan açıkça etkinleştirilmişse (Android uygulama manifestinizi değiştirmeniz gerekir) GWP-ASan bellek raporlarını alabilirsiniz. Uygulamanızda herhangi bir C++ kodu varsa Android dokümanlarındaki örnek yerel kodu kullanarak GWP-ASan kurulumunuzu test edebilirsiniz.
Özel anahtarlar ekleyin
Özel anahtarlar, kilitlenmeye yol açan uygulama durumunu öğrenmenize yardımcı olur. Rastgele anahtar/değer çiftlerini kilitlenme raporlarınızla ilişkilendirebilir, ardından özel anahtarları kullanarak Firebase konsolunda kilitlenme raporlarını arayıp filtreleyebilirsiniz.
- Crashlytics kontrol panelinde, özel bir anahtarla eşleşen sorunları arayabilirsiniz.
- Konsolda belirli bir sorunu incelerken her etkinlikle ilişkili özel anahtarları (Anahtarlar alt sekmesi) görüntüleyebilir, hatta etkinlikleri özel anahtarlara göre filtreleyebilirsiniz (sayfanın üst kısmındaki Filtre menüsü).
Birden fazla kez çağrıldığında, mevcut anahtarların yeni değerleri değeri günceller ve bir kilitlenme kaydedildiğinde yalnızca en güncel değer yakalanır.
Crashlytics.SetCustomKey(string key, string value);
Özel günlük mesajları ekleyin
Günlüğe kaydedilen mesajlar, kilitlenme verilerinizle ilişkilendirilir ve belirli bir kilitlenmeyi görüntülerken Firebase Crashlytics kontrol panelinde görünür.
Crashlytics.Log(string message);
Kullanıcı tanımlayıcılarını ayarlama
Kişisel bilgilerini açıklamadan veya iletmeden uygulamanızın son kullanıcısını benzersiz şekilde tanımlamak için kimlik numarası, jeton veya karma oluşturma işlemi uygulanmış değer kullanabilirsiniz. Değeri boş bir dize olarak ayarlayarak da değeri temizleyebilirsiniz. Bu değer, belirli bir kilitlenme görüntülenirken Firebase Crashlytics kontrol panelinde gösterilir.
Crashlytics.SetUserId(string identifier);
İçerik haritası günlüklerini alma
İçerik haritası günlükleri, kullanıcıların uygulamanızda kurduğu, kilitlenmeye, önemli olmayan veya ANR etkinliğine neden olan etkileşimleri daha iyi anlamanızı sağlar. Bu günlükler, bir sorunu yeniden oluşturup hata ayıklamaya çalışırken faydalı olabilir.
İçerik haritası günlükleri Google Analytics tarafından desteklenmektedir. Bu nedenle, içerik haritası günlüklerini almak için Firebase projenizde Google Analytics'i etkinleştirmeniz ve Google Analytics için Firebase SDK'sını uygulamanıza eklemeniz gerekir. Bu şartlar karşılandıktan sonra, bir sorunun ayrıntılarını görüntülediğinizde içerik haritası günlükleri Günlükler sekmesine etkinlik verileriyle otomatik olarak eklenir.
Analytics SDK'sı screen_view
etkinliğini otomatik olarak günlüğe kaydeder. Bu etkinlik, içerik haritası günlüklerinde kilitlenme, önemli olmayan veya ANR etkinliğinden önce görüntülenen ekranların listesini göstermesini sağlar. screen_view
içerik haritası günlüğü firebase_screen_class
parametresi içeriyor.
İçerik haritası günlükleri, etkinliğin parametre verileri de dahil olmak üzere kullanıcının oturumunda manuel olarak girdiğiniz tüm özel etkinliklerle doldurulur. Bu veriler; kilitlenme, önemli olmayan veya ANR etkinliğiyle sonuçlanan bir dizi kullanıcı işlemini göstermeye yardımcı olabilir.
İçerik haritası günlüklerini dolduran verileri içeren Google Analytics verilerinin toplanmasını ve kullanımını kontrol edebileceğinizi unutmayın.
Kayıt raporlamayı etkinleştir
Crashlytics, varsayılan olarak uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar. Kilitlenmeleri bildirme özelliğine kaydolmalarını sağlayarak kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol sağlayabilirsiniz.
Otomatik toplamayı devre dışı bırakmak ve Crashlytics'i yalnızca seçili kullanıcılar için başlatmak istiyorsanız çalışma zamanında Crashlytics veri toplama geçersiz kılmasını çağırın. Geçersiz kılma değeri, uygulamanızın lansmanları boyunca da devam eder. Böylece Crashlytics, raporları otomatik olarak toplayabilir. Otomatik kilitlenme raporlamasını devre dışı bırakmak için geçersiz kılma değeri olarak false
değerini iletin. false
olarak ayarlandığında yeni değer, uygulamanın bir sonraki çalıştırılmasına kadar geçerli olmaz.
Crashlytics.IsCrashlyticsCollectionEnabled = true
Crash Insights verilerini yönetme
Crash Insights, anonimleştirilmiş yığın izlerinizi diğer Firebase uygulamalarındaki izlerle karşılaştırarak ve sorununuzun daha büyük bir trendin parçası olup olmadığını bildirerek sorunları çözmenize yardımcı olur. Crash Insights, çoğu sorun için kilitlenmede hata ayıklamanıza yardımcı olacak kaynaklar bile sağlar.
Crash Insights, yaygın kararlılık trendlerini belirlemek için birleştirilmiş kilitlenme verilerini kullanır. Uygulamanızın verilerini paylaşmak istemiyorsanız Firebase konsolundaki Crashlytics sorun listenizin üst kısmındaki Crash Insights menüsünden Crash Insights'ı devre dışı bırakabilirsiniz.