Crashlytics kontrol panelinde, bir sorunu tıklayıp ayrıntılı etkinlik raporu alabilirsiniz. Bu raporları, uygulamanızda neler olduğunu ve Crashlytics'e bildirilen etkinliklerle ilgili koşulları daha iyi anlamanıza yardımcı olacak şekilde özelleştirebilirsiniz.
Uygulamanızı kullanarak özel anahtarları, özel günlük mesajlarını ve kullanıcı tanımlayıcılarını kaydedin.
İstisnaları Crashlytics'e bildirin.
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örmenizi sağlar.
Otomatik kilitlenme raporlamasını kapatın ve kullanıcılarınız için kayıt bildirmeyi etkinleştirin. Crashlytics'in varsayılan olarak uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak topladığını unutmayın.
Ö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, ardından özel anahtarları kullanarak Firebase konsolunda kilitlenme raporlarını arayıp filtreleyebilirsiniz.
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, 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. value
parametresi için setCustomKey
öğesinin, temel veya String
bağımsız değişkenlerini kabul edebilmesi için aşırı yüklendiğini unutmayın. Aşağıda birkaç örnek 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, anahtarı çağırıp farklı bir değere ayarlayarak mevcut bir anahtarın değerini değiştirebilirsiniz. Örnek:
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");
setCustomKeys
örnek yöntemine CustomKeysAndValues
örneği ileterek anahtar/değer çiftlerini toplu olarak ekleyin:
Kotlin+KTX
Kotlin'deki 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ı ekleyin
Kilitlenmeye yol açan olaylarla ilgili kendinize daha fazla bilgi sağlamak için uygulamanıza özel Crashlytics günlükleri ekleyebilirsiniz. Crashlytics, günlükleri kilitlenme verilerinizle ilişkilendirir ve Firebase konsolunun Crashlytics sayfasındaki Günlükler sekmesinde gösterir.
Sorunları belirlemeye yardımcı olması için log
kullanın. Örnek:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
Kullanıcı tanımlayıcılarını ayarlama
Bir sorunu teşhis etmek için, belirli bir kilitlenmeyi hangi kullanıcılarınızın yaşadığını bilmek genellikle yararlıdır. Crashlytics, kilitlenme raporlarınızda kullanıcıları anonim olarak tanımlayabileceğiniz bir yöntem içerir.
Raporlarınıza kullanıcı kimlikleri eklemek için her kullanıcıya kimlik numarası, jeton veya karma oluşturma işlemi uygulanmış değer biçiminde benzersiz bir tanımlayıcı atayın:
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 boş bir dizeye sıfırlayın. Bir kullanıcı tanımlayıcısının temizlenmesi, mevcut Crashlytics kayıtlarını kaldırmaz. 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
NDK kilitlenme raporlarına özel anahtarlar, özel günlükler ve kullanıcı tanımlayıcıları gibi meta veriler eklemek için isteğe bağlı olarak C++ kodunuza crashlytics.h
üst bilgisini ekleyebilirsiniz. Tüm bu seçenekler yukarıdaki bu sayfada açıklanmaktadır.
crashlytics.h
, Firebase Android SDK GitHub Deposu'nda yalnızca başlık içeren bir C++ kitaplığı olarak bulunur.
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, 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 bellek bozulmasıyla ilişkili olabilir. Bu durum, uygulama güvenliği 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 izlemeleri" sekmesinde görüntüleyebilirsiniz.
Bu verilerle ilgili tüm sorunları hızlı bir şekilde görüntülemek için yeni "GWP-ASan raporu" sinyalini ve filtresini de kullanabilirsiniz.
Uygulamanızda GWP-ASan'ı açıkça etkinleştirirseniz ve NDK v18.3.6+ için Crashlytics SDK'sını (Firebase BoM v31.3.0+) kullanırsanız GWP-ASan bellek raporlarını alabilirsiniz. Android dokümanlarındaki örnek yerel kodu kullanarak GWP-ASan kurulumunuzu test edebilirsiniz.
Önemli olmayan istisnaları bildirin
Crashlytics, uygulamanızın kilitlenmelerini otomatik olarak bildirmenin yanı sıra önemli olmayan istisnaları kaydetmenizi sağlar ve uygulamanız tekrar başlatıldığında size gönderir.
Uygulamanızın catch
bloklarında önemli olmayan istisnaları kaydetmek için recordException
yöntemini kullanın. Örnek:
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 kilitlenmelerden aldığınız tüm durum bilgilerinin yanı sıra Android sürümü ve donanım cihazına göre dökümü içerir.
Crashlytics, uygulamanızın performans üzerindeki etkisini en aza indirmek için özel bir arka plan iş parçacığında istisnaları işler. Kullanıcılarınızın ağ trafiğini azaltmak için Crashlytics, günlüğe kaydedilen istisnaları bir araya getirir ve uygulama tekrar başlatıldığında bunları gönderir.
İçerik haritası günlüklerini alma
İçerik haritası günlükleri, kullanıcıların uygulamanızda kurduğu, kilitlenmeye, önemli olmayan veya ANR etkinliğine neden olan etkileşimleri daha iyi anlamanızı sağlar. Bu günlükler, bir sorunu yeniden oluşturup 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 için Firebase projenizde Google Analytics'i etkinleştirmeniz ve Google Analytics için Firebase SDK'sını uygulamanıza eklemeniz gerekir. Bu şartlar karşılandıktan sonra, bir sorunun ayrıntılarını görüntülediğinizde içerik haritası günlükleri Günlükler sekmesine etkinlik verileriyle otomatik olarak eklenir.
Analytics SDK'sı screen_view
etkinliğini otomatik olarak günlüğe kaydeder. Bu etkinlik, içerik haritası günlüklerinde kilitlenme, önemli olmayan veya ANR etkinliğinden önce görüntülenen ekranların listesini göstermesini sağlar. screen_view
içerik haritası günlüğü firebase_screen_class
parametresi içeriyor.
İçerik haritası günlükleri, etkinliğin parametre verileri de dahil olmak üzere kullanıcının oturumunda manuel olarak girdiğiniz tüm özel etkinliklerle doldurulur. Bu veriler; kilitlenme, önemli olmayan veya ANR etkinliğiyle sonuçlanan 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ımını kontrol edebileceğinizi unutmayın.
Kayıt raporlamayı etkinleştir
Crashlytics, varsayılan olarak uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar. Kullanıcıların gönderdikleri veriler üzerinde daha fazla kontrol sahibi olmaları için otomatik raporlamayı devre dışı bırakarak ve sadece kodunuzda istediğiniz zaman Crashlytics'e veri göndererek kayıt raporlamayı etkinleştirebilirsiniz:
Otomatik toplamayı devre dışı bırakmak için
AndroidManifest.xml
dosyanızınapplication
bloğuna birmeta-data
etiketi ekleyin:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Çalışma zamanında Crashlytics veri toplama geçersiz kılmasını çağırarak belirli kullanıcılar için veri toplamayı etkinleştirin. Geçersiz kılma değeri, uygulamanızın lansmanları boyunca da devam eder. Böylece Crashlytics, raporları otomatik olarak toplayabilir. Otomatik kilitlenme raporunu 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.Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(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 trendin parçası olup olmadığını bildirerek sorunları çözmenize yardımcı olur. Crash Insights, çoğu sorun için kilitlenmede hata 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 Crash Insights menüsünden Crash Insights'ı devre dışı bırakabilirsiniz.