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


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

  • Uygulamanız Google Analytics için Firebase SDK'sını kullanıyorsa ekmek kırıntıları günlüklerini otomatik olarak alın. Bu günlükler, Uygulamanızda Crashlytics tarafından toplanan bir etkinlikle sonuçlanan kullanıcı işlemleri.

  • Otomatik kilitlenme raporlamasını kapatın ve Kullanıcılarınız için kayıt raporlamasını etkinleştirmeniz gerekir. Crashlytics'ün varsayılan olarak uygulamanızın tüm kullanıcılarının kilitlenme raporlarını otomatik olarak topladığını unutmayın.

Özel anahtar ekleme

Özel anahtarlar, kilitlenmeye yol açan uygulama durumunu öğrenmenize yardımcı olur. İsteğe bağlı anahtar/değer çiftlerini kilitlenme raporlarınızla 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ı görüntüleyebilir (Anahtarlar alt sekmesi) ve hatta etkinlikleri özel anahtarlara göre filtreleyebilirsiniz (sayfanın üst kısmındaki Filtre menüsü).

Anahtar/değer çiftlerini ayarlamak için setCustomKey örnek yöntemini kullanın. setCustomKey parametresinin, herhangi bir ilkel veya String bağımsız değişkenini kabul etmesi için value parametresi için aşırı yüklendiğini unutmayın. Aşağıda bazı örnekler verilmiştir:

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("my_string_key", "foo") // String value
    key("my_bool_key", true) // boolean value
    key("my_double_key", 1.0) // double value
    key("my_float_key", 1.0f) // float value
    key("my_int_key", 1) // int value
}

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("my_string_key", "foo" /* string value */);

crashlytics.setCustomKey("my_bool_key", true /* boolean value */);

crashlytics.setCustomKey("my_double_key", 1.0 /* double value */);

crashlytics.setCustomKey("my_float_key", 1.0f /* float value */);

crashlytics.setCustomKey("my_int_key", 1 /* int value */);

Ayrıca, mevcut bir anahtarı çağırıp farklı bir değere ayarlayarak anahtarın değerini değiştirebilirsiniz. Örneğin:

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("current_level", 3)
    key("last_UI_action", "logged_in")
}

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("current_level", 3);
crashlytics.setCustomKey("last_UI_action", "logged_in");

CustomKeysAndValues öğesinin bir örneğini ileterek anahtar/değer çiftlerini toplu olarak ekleyin setCustomKeys örnek yöntemi:

Kotlin+KTX

Kotlin'deki mevcut işlevsellik, CustomKeysAndValues oluşturucu.

crashlytics.setCustomKeys {
  key("str_key", "hello")
  key("bool_key", true)
  key("int_key", 1)
  key("long_key", 1L)
  key("float_key", 1.0f)
  key("double_key", 1.0)
}

Java

CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder()
.putString("string key", "string value")
.putString("string key 2", "string  value 2")
.putBoolean("boolean key", True)
.putBoolean("boolean key 2", False)
.putFloat("float key", 1.01)
.putFloat("float key 2", 2.02)
.build();

FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);

Özel günlük mesajları ekleme

Bir kilitlenmeye yol açan etkinliklerle ilgili daha fazla bağlam bilgisi sağlamak için özel Crashlytics günlüklerini kullanabilirsiniz. Crashlytics, günlükleri ilişkilendirir bu verileri kilitlenmenizi sağlar ve uygulamanın Crashlytics sayfasında Firebase konsolunda, Günlükler sekmesi altında.

Sorunları belirlemeye yardımcı olması için log kullanın. Örneğin:

Kotlin+KTX

Firebase.crashlytics.log("message")

Java

FirebaseCrashlytics.getInstance().log("message");

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

Bir sorunu teşhis etmek için, hangi kullanıcılarınızın sorunla karşılaştığını bilmek genellikle yararlıdır en iyi yöntemin ne olduğunu öğreneceğiz. Crashlytics, kilitlenme raporlarınızda kullanıcıları anonim olarak tanımlamanın bir yolunu içerir.

Raporlarınıza kullanıcı kimlikleri eklemek için bir kimlik numarası, jeton veya karma oluşturma işlemi uygulanmış değer biçimi:

Kotlin+KTX

Firebase.crashlytics.setUserId("user123456789")

Java

FirebaseCrashlytics.getInstance().setUserId("user123456789");

Bir kullanıcı tanımlayıcısını ayarladıktan sonra onu temizlemeniz gerekirse değeri şu şekilde sıfırlayın: boş bir dize. Kullanıcı tanımlayıcısı temizlendiğinde mevcut Crashlytics kayıtları kaldırılmaz. Bir kullanıcı kimliğiyle ilişkili kayıtları silmeniz gerekiyorsa Firebase destek ekibiyle iletişime geçin.

(Yalnızca Android NDK) NDK kilitlenme raporlarına meta veri ekleme

İsteğe bağlı olarak, NDK kilitlenme raporlarına özel anahtarlar, özel günlükler ve kullanıcı tanımlayıcıları gibi meta veriler eklemek için C++ kodunuza crashlytics.h üst bilgisini dahil edebilirsiniz. Tüm bu seçeneklerin açıklamaları bu sayfanın üst kısmına bakın.

crashlytics.h, Firebase Android SDK GitHub deposunda yalnızca başlık içeren bir C++ kitaplığı olarak kullanılabilir.

NDK C++ API'lerinin kullanımıyla ilgili talimatlar için başlık dosyasındaki yorumları okuyun.

Bellek bozulması sorunlarını hata ayıklamak için GWP-ASan raporlarını ekleme

Crashlytics, GWP-ASan raporlarını toplayarak yerel bellek hatalarından kaynaklanan kilitlenmelerde hata ayıklamanıza yardımcı olabilir. Bellekle ilgili bu hatalar, uygulamanızdaki bellek bozulması. Bu, uygulama güvenliğinin başlıca nedenidir. güvenlik açıkları.

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

  • Yeni "GWP-ASan raporunu" da kullanabilirsiniz hızla görüntülemek için sinyal ve filtre bu verilerle ilgili tüm sorunları giderebilirsiniz.

Aşağıdaki koşulları karşılıyorsanız GWP-ASan bellek raporlarını alabilirsiniz: GWP-ASan'ı açık bir şekilde etkinleştirme uygulamanızda ve NDK v18.3.6+ için Crashlytics SDK'sını (Firebase BoM sürüm 31.3.0+). GWP-ASan kurulumunuzu Android dokümanlarında örnek yerel kod.

Önemli olmayan istisnaları bildirin

Crashlytics, uygulamanızın kilitlenmelerini otomatik olarak bildirmenin yanı sıra, önemli olmayan istisnaları kaydedersiniz ve uygulamanız bir dahaki sefere bu istisnaları size gönderir lansman sonrasında gerçekleşebilir.

Uygulamanızın catch bloklarında önemli olmayan istisnaları kaydetmek için recordException yöntemini kullanın. Örneğin:

Kotlin+KTX

try {
    methodThatThrows()
} catch (e: Exception) {
    Firebase.crashlytics.recordException(e)
    // handle your exception here
}

Java

try {
    methodThatThrows();
} catch (Exception e) {
    FirebaseCrashlytics.getInstance().recordException(e);
    // handle your exception here
}

Kaydedilen tüm istisnalar, Firebase konsolunda önemli olmayan sorunlar olarak görünür. Sorun özetinde, normalde kilitlenmelerden aldığınız tüm durum bilgileri ve Android sürümüne ve donanım cihazına göre dökümler yer alır.

Crashlytics, özel bir arka plan ileti dizisinde istisnaları şu amaçlarla işler: uygulamanız üzerindeki performans etkisini en aza indirmenize yardımcı olur. Kullanıcılarınızın ağını azaltmak için trafiğinde, Crashlytics günlüğe kaydedilen istisnaları bir araya getirir ve onlara tekrar kontrol edin.

İçerik haritası günlüklerini alma

İçerik haritası günlükleri, kullanıcının kilitlenme, önemli olmayan veya ANR etkinliğine neden olan sorunları içerir. Bu günlükler, bir sorunu yeniden oluşturmaya ve hata ayıklamaya çalışırken faydalı olabilir.

Kırıntı günlükleri Google Analytics tarafından desteklenir. Bu nedenle, breadcrumb 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 koşullar karşılandığında, bir sorunun ayrıntılarını görüntülediğinizde breadcrumb günlükleri, Günlükler sekmesindeki bir etkinliğin verilerine otomatik olarak eklenir.

Analytics SDK'sı, screen_view etkinliğini otomatik olarak günlüğe kaydeder. Bu sayede, içerik haritası günlükleri kilitlenme, ölümcül olmayan veya ANR etkinliğinden önce görüntülenen ekranların listesini gösterebilir. screen_view içerik haritası günlüğünde firebase_screen_class parametresi var.

İçerik haritası günlükleri ayrıca özel etkinlikler oluşturabilirsiniz. oturumuna ait verileri toplar. Bu veriler, seçtiğiniz seriyi göstermeye yardımcı olabilir Kilitlenme, önemli olmayan veya ANR etkinliğiyle sonuçlanan kullanıcı işlemlerinin sayısı.

Google Analytics verilerinin toplanmasını ve kullanılmasını kontrol edebileceğinizi unutmayın. Bu veriler arasında, içerik haritası günlüklerini dolduran veriler de bulunur.

Etkinleştirme raporlamasını etkinleştirme

Varsayılan olarak Crashlytics, tüm mobil cihazlarınız için kilitlenme raporlarını kullanıcılara ulaşabiliyoruz. Kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol sahibi olma imkanı tanımak için otomatik raporlamayı devre dışı bırakarak ve yalnızca kodunuzda Crashlytics'ye veri göndermeyi seçtiğinizde etkinleştirerek etkinleştirmeyi etkinleştirebilirsiniz:

  1. Otomatik toplamayı devre dışı bırakmak için AndroidManifest.xml dosyanızın application bloğuna bir meta-data etiketi ekleyin:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    
  2. Crashlytics verilerini çağırarak belirli kullanıcılar için veri toplamayı etkinleştirin koleksiyonu geçersiz kılmanın zamanı geldi. Üzeride yazılma değeri, Crashlytics'ün raporları otomatik olarak toplayabilmesi için uygulamanızın her lansmanında devam eder. Devre dışı bırakmak için için geçersiz kılma değeri olarak false değerini iletin. Ayarlandığında false değerine ayarlanırsa yeni değer, uygulamanın bir sonraki çalıştırılmasına kadar geçerli olmaz.

    Kotlin+KTX

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

Crash Insights verilerini yönetme

Crash Insights, anonimleştirilmiş yığınınızı karşılaştırarak sorunları çözmenize yardımcı olur diğer Firebase uygulamalarından gelen izleri izler ve sorununuzun büyük bir trendin parçası haline geldi. Crash Insights, sorunların çoğu için kaynak bile sağlar kilitlenmede hata ayıklamanıza yardımcı olur.

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