Firebase Crashlytics kilitlenme raporlarınızı özelleştirme

Crashlytics kontrol panelinde bir sorunu tıklayıp ayrıntılı etkinlik raporu alabilirsiniz. Uygulamanızda neler olduğunu ve Crashlytics'e bildirilen etkinliklerle ilgili koşulları daha iyi anlamanıza yardımcı olması için bu raporları özelleştirebilirsiniz.

  • 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örebilmenizi sağlar.

  • Otomatik kilitlenme raporlamasını kapatın ve kullanıcılarınız için kaydolma raporlarını etkinleştirin. Varsayılan olarak Crashlytics, uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar.

İstisnaları bildirme

Yakalanan istisnaları bildir

Beklenen istisnalarınız varsa Crashlytics SDK'sının bunları önemli olmayan etkinlikler olarak bildirmesini sağlayabilirsiniz. Bu etkinlikler cihaza kaydedilir ve ardından bir sonraki önemli etkinlik raporuyla veya son kullanıcı oyunu yeniden başlattığında gönderilir.

Aşağıdaki yöntemi kullanarak C# dilindeki istisnaları günlüğe kaydedebilirsiniz:

Crashlytics.LogException(Exception ex);

Beklenen istisnaları oyununuzun dene-yakala bloklarına kaydedebilirsiniz:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

Yakalanmayan istisnaları bildir

Unity projenizde Crashlytics'i başlatırken Crashlytics.ReportUncaughtExceptionsAsFatal özelliğini true olarak ayarlayarak, oyununuzun kilitlenmesine yol açmayan yakalanmamış istisnalar için (örneğin, oyun mantığında yakalanmamış C# istisnaları) Crashlytics SDK'nın bu durumları önemli etkinlikler olarak bildirmesini sağlayabilirsiniz. Bu etkinlikler, son kullanıcının oyunu yeniden başlatmasına gerek kalmadan Crashlytics'e gerçek zamanlı olarak bildirilir.

Yakalanmayan bu istisnaları önemli etkinlik olarak bildirmeniz, kilitlenme sorunu yaşamayan kullanıcı istatistiklerinizde ve hız uyarılarına dahil olacakları anlamına gelir.

Yerel kilitlenmelerin her zaman önemli etkinlikler olarak raporlandığını unutmayın. Bu etkinlikler cihaza 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ını ayıklamak için GWP-ASan raporlarını dahil et

IL2CPP kullanan Android uygulamalarında, Crashlytics, GWP-ASan raporlarını toplayarak yerel bellek hatalarının neden olduğu kilitlenmeleri ayıklamanıza yardımcı olabilir. Bellekle ilgili bu hatalar, uygulama güvenlik açıklarının başlıca nedeni olan uygulamanızdaki bellek bozulmasıyla ilişkili olabilir.

  • 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ızla görüntülemek için yeni "GWP-ASan raporu" sinyalini ve filtresini de kullanabilirsiniz.

Uygulamanız Unity için en yeni Crashlytics SDK'yı (v10.7.0+) kullanıyorsa ve GWP-ASan açıkça etkinleştirilmişse (Android Uygulama Manifest'inizi değiştirmenizi gerektirir) 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 anahtar ekle

Özel anahtarlar, uygulamanızın kilitlenmeye yol açan belirli 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ı arayabilir ve filtreleyebilirsiniz.

  • Crashlytics kontrol panelinde, özel bir anahtarla eşleşen sorunları arayabilirsiniz.
  • Konsolda belirli bir sorunu incelerken, her bir etkinlikle ilişkili özel anahtarları (Anahtarlar alt sekmesi) görüntüleyebilir ve hatta etkinlikleri özel anahtarlara göre filtreleyebilirsiniz (sayfanın üst kısmındaki Filtre menüsü).

Birden çok 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 kilitlenme görüntülenirken Firebase Crashlytics kontrol panelinde görünür.

Crashlytics.Log(string message);

Kullanıcı tanımlayıcıları ayarlama

Uygulamanızın son kullanıcısını, kişisel bilgilerini açıklamadan veya aktarmadan benzersiz bir şekilde tanımlamak için kimlik numarası, jeton veya karma oluşturma işlemi uygulanmış değer kullanabilirsiniz. Bu değeri boş bir dizeye ayarlayarak da 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ızla, kilitlenme, önemli olmayan veya ANR olaylarına neden olan etkileşimlerini daha iyi anlamanızı sağlar. Bu günlükler, bir sorunu yeniden oluşturmaya ve 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 amacıyla Firebase projeniz için Google Analytics'i etkinleştirmeniz ve uygulamanıza Google Analytics için Firebase SDK'sını eklemeniz gerekir. Bu gereksinimler karşılandıktan sonra, sorunun ayrıntılarını görüntülediğinizde içerik haritası günlükleri, etkinlik verilerine otomatik olarak eklenir. Günlükler sekmesine eklenir.

Analytics SDK'sı, screen_view etkinliğini otomatik olarak günlüğe kaydeder. Böylece içerik haritası günlüklerinde, kilitlenme, önemli olmayan veya ANR etkinliğinden önce görüntülenen ekranların listesi gösterilir. screen_view içerik haritası günlüğü, firebase_screen_class parametresi içerir.

İçerik haritası günlükleri, etkinliğin parametre verileri dahil olmak üzere, kullanıcının oturumunda manuel olarak günlüğe kaydettiğiniz tüm özel etkinliklerle de doldurulur. Bu veriler; kilitlenme, önemli olmayan veya ANR etkinliğine yol açan 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ılmasını kontrol edebileceğinizi unutmayın.

Raporlamaya dahil olmayı etkinleştir

Varsayılan olarak Crashlytics, uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar. Kilitlenmeleri bildirmeyi seçmelerine izin vererek kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol sağlayabilirsiniz.

Otomatik toplamayı devre dışı bırakmak ve Crashlytics'i yalnızca seçilen kullanıcılar için başlatmak üzere çalışma zamanında Crashlytics veri toplama geçersiz kılmasını çağırın. Geçersiz kılma değeri, uygulamanızın kullanıma sunulduğu tüm platformlarda aynı kalır. Böylece Crashlytics, raporları otomatik olarak toplayabilir. Otomatik kilitlenme raporları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 eğilimin parçası olup olmadığını size bildirerek sorunları çözmenize yardımcı olur. Crash Insights, birçok sorun için kilitlenme hatalarını ayıklamanıza yardımcı olacak kaynaklar da 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 konsolunda Crashlytics sorun listenizin üst kısmında bulunan Crash Insights menüsünden Kilitlenme Analizleri'ni devre dışı bırakabilirsiniz.