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

Crashlytics kontrol panelinde bir soruna tıklayıp ayrıntılı bir etkinlik raporu alabilirsiniz. Uygulamanızda neler olup bittiğini ve Crashlytics'e bildirilen olaylarla ilgili koşulları daha iyi anlamanıza yardımcı olmak 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şlemlerine ilişkin görünürlük sağlar.

  • Otomatik kilitlenme raporlamasını kapatın ve kullanıcılarınız için isteğe bağlı raporlamayı etkinleştirin . Varsayılan olarak Crashlytics'in uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak topladığını unutmayın.

İstisnaları bildir

Yakalanan istisnaları bildirin

Beklenen istisnalarınız varsa Crashlytics SDK'nın bunları ölümcül olmayan olaylar olarak raporlamasını sağlayabilirsiniz. Bu olaylar cihazda günlüğe kaydedilir ve ardından bir sonraki önemli olay raporuyla birlikte veya son kullanıcı oyunu yeniden başlattığında gönderilir.

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

Crashlytics.LogException(Exception ex);

Beklenen istisnaları oyununuzun try/catch bloklarına kaydedebilirsiniz:

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

Yakalanmayan istisnaları bildirin

Oyununuzu çökertmeyen yakalanmamış istisnalar için (örneğin, oyun mantığındaki yakalanmamış C# istisnaları), Unity projenizde Crashlytics'i başlattığınız yerde Crashlytics.ReportUncaughtExceptionsAsFatal özelliğini true değerine ayarlayarak Crashlytics SDK'nın bunları ölümcül olaylar olarak raporlamasını sağlayabilirsiniz. . Bu olaylar, son kullanıcının oyunu yeniden başlatmasına gerek kalmadan Crashlytics'e gerçek zamanlı olarak bildirilir.

Bu yakalanmamış istisnaları önemli olaylar olarak bildirmek, bunların kilitlenmesiz kullanıcı istatistiklerinizde ve hız uyarılarında sayılacağı anlamına gelir.

Yerel çökmelerin her zaman ölümcül olaylar olarak rapor edildiğini unutmayın. Bu olaylar cihazda günlüğe kaydedilir ve son kullanıcı oyunu yeniden başlattığında 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ı ekleyin

IL2CPP kullanan Android uygulamaları için 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 güvenlik açıklarının önde gelen nedeni olan bellek bozulmasıyla ilişkilendirilebilir.

  • Crashlytics kontrol panelinde bir sorunun ayrıntılarına tıkladığınızda bu verileri yeni bir "Bellek yığını izleri" 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'sını (v10.7.0+) kullanıyorsa ve GWP-ASan açıkça etkinleştirilmişse ( Android Uygulama Bildiriminizi değiştirmenizi gerektirir) GWP-ASan bellek raporlarını alabilirsiniz. Uygulamanızda herhangi bir C++ kodunuz varsa Android belgelerindeki örnek yerel kodu kullanarak GWP-ASan kurulumunuzu test edebilirsiniz.

Özel anahtarlar ekleyin

Özel anahtarlar, uygulamanızın çökmeye yol açacak spesifik durumunu öğrenmenize yardımcı olur. Kilitlenme raporlarınızla rastgele anahtar/değer çiftlerini ilişkilendirebilir, ardından Firebase konsolunda kilitlenme raporlarını aramak ve filtrelemek için özel anahtarları kullanabilirsiniz.

  • Crashlytics kontrol panelinde özel bir anahtarla eşleşen sorunları arayabilirsiniz.
  • Konsolda belirli bir sorunu incelerken, her etkinlik için ilişkili özel anahtarları görüntüleyebilir ( Anahtarlar alt sekmesi) 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 için yeni değerler 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ını ayarlayın

Uygulamanızın son kullanıcısını, kişisel bilgilerini ifşa etmeden veya iletmeden benzersiz bir şekilde tanımlamak için bir kimlik numarası, belirteç veya karma değeri kullanabilirsiniz. Değeri boş bir dizeye ayarlayarak da temizleyebilirsiniz. Bu değer, belirli bir kilitlenme görüntülenirken Firebase Crashlytics kontrol panelinde görüntülenir.

Crashlytics.SetUserId(string identifier);

Kırıntı günlüklerini alın

Breadcrumb günlükleri, bir kullanıcının uygulamanızla yaşadığı ve kilitlenme, ölümcül olmayan veya ANR olayına yol açan etkileşimleri daha iyi anlamanızı sağlar. Bu günlükler, bir sorunu yeniden oluşturmaya ve hata ayıklamaya çalışırken yararlı olabilir.

İçerik haritası günlükleri Google Analytics tarafından desteklenir; dolayısıyla içerik haritası günlüklerini almak için Firebase projeniz için Google Analytics'i etkinleştirmeniz ve Google Analytics için Firebase SDK'sını uygulamanıza eklemeniz gerekir. Bu gereksinimler karşılandıktan sonra, bir sorunun ayrıntılarını görüntülediğinizde, kırıntı günlükleri, Günlükler sekmesindeki bir etkinliğin verilerine otomatik olarak dahil edilir.

Analytics SDK'sı screen_view olayını otomatik olarak günlüğe kaydeder ; bu, içerik haritası günlüklerinin kilitlenme, ölümcül olmayan olay veya ANR olayından önce görüntülenen ekranların bir listesini göstermesini sağlar. Bir screen_view içerik haritası günlüğü, bir firebase_screen_class parametresi içerir.

İçerik haritası günlükleri ayrıca, etkinliğin parametre verileri de dahil olmak üzere, kullanıcı oturumunda manuel olarak günlüğe kaydettiğiniz tüm özel olaylarla da doldurulur. Bu veriler, kilitlenme, ölümcül olmayan olay veya ANR olayına yol açan bir dizi kullanıcı işleminin gösterilmesine 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.

Katılım raporlamasını etkinleştir

Varsayılan olarak Crashlytics, uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar. Kilitlenmeleri raporlamayı tercih etmelerine izin vererek kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol verebilirsiniz.

Otomatik toplamayı devre dışı bırakmak ve Crashlytics'i yalnızca seçilen kullanıcılar için başlatmak için çalışma zamanında Crashlytics veri toplamayı geçersiz kılmayı çağırın. Geçersiz kılma değeri, uygulamanızın başlatılması boyunca 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 uygulanmaz.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Crash Insights verilerini yönetin

Crash Insights, anonimleştirilmiş yığın izlerinizi diğer Firebase uygulamalarından gelen 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. Hatta Crash Insights birçok sorun için kilitlenme hatalarını ayıklamanıza yardımcı olacak kaynaklar da sağlar.

Crash Insights, ortak kararlılık eğilimlerini belirlemek için toplu kilitlenme verilerini kullanır. Uygulamanızın verilerini paylaşmamayı tercih ediyorsanız Firebase konsolundaki Crashlytics sorun listenizin üst kısmındaki Crash Insights menüsünden Crash Insights'ı devre dışı bırakabilirsiniz.