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. Ancak, Varsayılan ayar olan Crashlytics, tüm kilitlenme raporlarını otomatik olarak toplar. kullanıcılara ulaşabiliyoruz.

Ö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 ve ardından, Firebase konsolunda kilitlenme raporlarını aramak ve filtrelemek için özel anahtarları kullanın.

  • Crashlytics kontrol panelinde özel bir anahtarla eşleşen sorunları arayabilirsiniz.

  • Konsolda belirli bir sorunu incelerken her etkinlik için ilişkili özel anahtarlar oluşturabilir (Anahtarlar alt sekmesi) ve hatta etkinlikleri özel anahtarlara göre (sayfanın üst kısmındaki Filtre menüsü) tıklayın.

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 */);

Mevcut bir anahtarın değerini, anahtarı ve ayarı çağırarak da değiştirebilirsiniz farklı bir değere ayarlayabilirsiniz. Ö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 için mevcut işlevler, CustomKeysAndValues oluşturucuyu kullanmaktan daha basittir.

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, kullanıcıların kimliğini anonim olarak belirlemenin bir yolunu içerir. kilitlenme raporları gösterilmektedir.

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 temizlemeniz gerekirse değeri boş bir dizeye sıfırlayın. Bir kullanıcı tanımlayıcısı temizlendiğinde mevcut tanımlayıcılar Crashlytics kayıtları. Bir kullanıcıyla ilişkili kayıtları silmeniz gerekiyorsa kimliğiniz varsa Firebase destek ekibiyle iletişime geçin.

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

İsteğe bağlı olarak, crashlytics.h üstbilgisini isteğe bağlı olarak C++ kodunuza dahil ederek özel anahtarlar gibi meta verileri NDK kilitlenme raporlarına göndermek, özel günlüklerin kullanıcı tanımlayıcıları. Tüm bu seçeneklerin açıklamaları bu sayfanın üst kısmına bakın.

crashlytics.h, şurada yalnızca başlıktan oluşan bir C++ kitaplığı olarak kullanılabilir: Firebase Android SDK'sı GitHub Deposu.

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

Bellek bozulması sorunlarında hata ayıklamak için GWP-ASan raporlarını dahil etme

Crashlytics, yerel bellek hatalarının neden olduğu kilitlenmelerde hata ayıklamanıza yardımcı olabilir: GWP-ASan raporlarını toplama. Bellekle ilgili bu hatalar, uygulamanızdaki bellek bozulmasıyla ilişkilendirilebilir. Bu durum, uygulama güvenlik açıklarının başlıca nedenidir.

  • Bu verileri yeni bir "Bellek yığın izlemeleri"nde görüntüleyebilirsiniz tıkladığınızda konunun ayrıntılarına Crashlytics kontrol paneli.

  • 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.

recordException yöntemini kullanarak önemli olmayan istisnaları uygulamanızın catch blok. Ö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 özeti, normalde aldığınız tüm durum bilgilerini içerir. kilitlenmeleri de görebilirsiniz.

Crashlytics, uygulamanızdaki performans üzerindeki etkiyi en aza indirmek için istisnaları özel bir arka plan iş parçacığında işler. Kullanıcılarınızın ağ trafiğini azaltmak için Crashlytics, günlüğe kaydedilen istisnaları gruplandırır ve uygulama bir sonraki sefer açıldığında bunları gönderir.

İç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 yardımcı 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üğü bir firebase_screen_class parametresi içeriyor.

İç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ı.

Şunları yapabilirsiniz: Google Analytics verilerinin toplanmasını ve kullanımını kontrol edebilir, Bu işlem, içerik haritası günlüklerini dolduran verileri 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ı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. AndroidManifest.xml dosyanızın application bloğuna otomatik toplamayı devre dışı bırakmak için bir meta-data etiketi:

    <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. false olarak ayarlandığında yeni değer, uygulamanın bir sonraki çalıştırılmasına kadar uygulanmaz.

    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. Kilitlenme Analizleri, birçok sorun için kilitlenmeyi 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 Kilitlenme Analizleri menüsünden Kilitlenme Analizleri'ni devre dışı bırakabilirsiniz.