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


Crashlytics kontrol panelinde bir sorunu tıklayarak ayrıntılı bir etkinlik raporu alabilirsiniz. Bu raporları, uygulamanızda neler olduğunu ve Crashlytics'a bildirilen etkinliklerle ilgili koşulları daha iyi anlamanıza yardımcı olacak şekilde özelleştirebilirsiniz.

  • Uygulamanız Google Analytics için Firebase SDK'sını kullanıyorsa breadcrumb günlüklerini otomatik olarak alın. Bu günlükler, uygulamanızda Crashlytics ile toplanan bir etkinliğe yol açan kullanıcı işlemlerini görmenizi sağlar.

  • Otomatik kilitlenme raporlamayı devre dışı bırakın ve kullanıcılarınız için katılıma dayalı raporlamayı etkinleştirin. Crashlytics'nın varsayılan olarak uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak topladığını unutmayın.

İ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 cihazda günlüğe kaydedilir ve ardından bir sonraki ölümcül etkinlik raporuyla birlikte veya son kullanıcı oyunu yeniden başlattığında gönderilir.

Aşağıdaki yöntemi kullanarak C# dilinde istisnaları kaydedebilirsiniz:

Crashlytics.LogException(Exception ex);

Oyununuzun try/catch bloklarında beklenen istisnaları kaydedebilirsiniz:

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

Yakalanmayan istisnaları bildirme

Oyununuzun kilitlenmesine neden olmayan yakalanmamış istisnalar (ör. oyun mantığındaki yakalanmamış C# istisnaları) için Crashlytics SDK'sının bunları kritik etkinlikler olarak bildirmesini sağlayabilirsiniz. Bunun için Crashlytics.ReportUncaughtExceptionsAsFatal özelliğini, true olarak ayarlamanız gerekir. true, Unity projenizde Crashlytics'i başlattığınız yerdir. Bu etkinlikler, son kullanıcının oyunu yeniden başlatmasına gerek kalmadan Crashlytics'a gerçek zamanlı olarak bildirilir.

Bu yakalanmamış istisnaları önemli etkinlikler olarak raporlamak, bunların kilitlenmesiz kullanıcı istatistiklerinize ve hız uyarılarına dahil edileceği anlamına gelir.

Yerel kilitlenmelerin her zaman kritik etkinlik olarak bildirildiğini unutmayın. Bu etkinlikler 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ını ayıklamak için GWP-ASan raporlarını dahil etme

IL2CPP kullanan Android uygulamalarında Crashlytics, GWP-ASan raporlarını toplayarak yerel bellek hatalarından kaynaklanan kilitlenmelerin hata ayıklamasını yapmanıza yardımcı olabilir. Bu bellek hataları, uygulamanızdaki bellek bozulmasıyla ilişkili olabilir. Bellek bozulması, uygulama güvenlik açıklarının başlıca nedenidir.

  • Crashlytics kontrol panelinde bir sorunun ayrıntılarını tıkladığınızda bu verileri yeni bir "Bellek yığını izleri" sekmesinde görüntüleyebilirsiniz.

  • Bu verilerle ilgili tüm sorunları hızlıca görüntülemek için yeni "GWP-ASan raporu" sinyalini ve filtresini de kullanabilirsiniz.

Uygulamanızda Unity için en yeni Crashlytics SDK (v10.7.0+) kullanılıyorsa ve GWP-ASan açıkça etkinleştirilmişse GWP-ASan bellek raporları alabilirsiniz (Android uygulama manifestinizi değiştirmeniz gerekir). Uygulamanızda C++ kodu varsa Android belgelerindeki örnek yerel kodu kullanarak GWP-ASan kurulumunuzu test edebilirsiniz.

Özel anahtar ekleme

Özel anahtarlar, uygulamanızın kilitlenmeye yol açan belirli durumunu almanıza yardımcı olur. Kilitlenme raporlarınızla rastgele anahtar/değer çiftleri 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 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ı ekleme

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ı ayarlama

Uygulamanızın son kullanıcısını, kişisel bilgilerini ifşa etmeden veya iletmeden benzersiz bir şekilde tanımlamak için kimlik numarası, jeton ya da karma oluşturma işlemi uygulanmış değer kullanabilirsiniz. Değeri boş bir dize olarak 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

Breadcrumb günlükleri, bir kullanıcının kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan uygulama etkileşimleri hakkında daha iyi bilgi edinmenizi 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 desteklenir. Bu nedenle, içerik haritası günlüklerini almak için Firebase projenizde Google Analytics'i etkinleştirmeniz ve uygulamanıza Google Analytics için Firebase SDK'sını eklemeniz gerekir. Bu şartlar karşılandıktan sonra, bir sorunun ayrıntılarını görüntülerken içerik haritası günlükleri Günlükler sekmesindeki etkinlik verilerine otomatik olarak eklenir.

Analytics SDK'sı, screen_view etkinliğini otomatik olarak günlüğe kaydeder. Bu sayede, kilitlenme, ölümcül olmayan veya ANR etkinliğinden önce görüntülenen ekranların listesini göstermek için izleme kaydı günlükleri kullanılabilir. screen_view izleme kaydı, firebase_screen_class parametresini içeriyor.

Ayrıca, kullanıcı oturumunda manuel olarak günlüğe kaydettiğiniz tüm özel etkinlikler (etkinliğin parametre verileri dahil) ile de izleme kaydı günlükleri doldurulur. Bu veriler, kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan bir dizi kullanıcı işlemini göstermeye yardımcı olabilir.

Google Analytics verilerinin toplanmasını ve kullanılmasını kontrol edebileceğinizi unutmayın. Bu veriler, izleme kaydı günlüklerini dolduran verileri de içerir.

Etkinleştirme raporlamasını etkinleştirme

Varsayılan olarak Crashlytics, uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar. Kullanıcıların kilitlenme raporlarını göndermeyi etkinleştirmesine izin vererek gönderdikleri veriler üzerinde daha fazla kontrol sahibi olmalarını sağlayabilirsiniz.

Otomatik toplamayı yalnızca belirli kullanıcılar için devre dışı bırakmak istiyorsanız çalışma zamanında Crashlytics veri toplama geçersiz kılma işlevini çağırın. Geçersiz kılma değeri, uygulamanızın sonraki tüm başlatma işlemlerinde kalıcı olur. Böylece Crashlytics, söz konusu kullanıcı için raporları otomatik olarak toplayabilir.

Crashlytics.IsCrashlyticsCollectionEnabled = true

Kullanıcı daha sonra veri toplamayı devre dışı bırakırsa geçersiz kılma değeri olarak false değerini iletebilirsiniz. Bu değer, kullanıcı uygulamayı bir sonraki kez başlattığında uygulanır ve bu kullanıcının sonraki tüm başlatma işlemleri için geçerli olmaya devam eder.

Kilitlenme analizleri verilerini yönetme

Kilitlenme analizleri, anonimleştirilmiş yığın izlemelerinizi diğer Firebase uygulamalarındaki izlemelerle karşılaştırarak sorunları çözmenize yardımcı olur ve sorununuzun daha büyük bir trendin parçası olup olmadığını bildirir. Kilitlenme Analizleri, birçok sorunda kilitlenmeyi ayıklamanıza yardımcı olacak kaynaklar da sunar.

Kilitlenme Analizleri, 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 Çökme Analizleri menüsünden Çökme Analizleri'ni devre dışı bırakabilirsiniz.