Bu kılavuzda, Firebase Crashlytics SDK'yı kullanarak kilitlenme raporlarınızı nasıl özelleştireceğiniz açıklanmaktadır. Varsayılan olarak Crashlytics, uygulamanızın tüm kullanıcıları için kilitlenme raporlarını otomatik olarak toplar (bunun yerine otomatik kilitlenme raporlamasını kapatabilir ve bunun yerine kullanıcılarınız için isteğe bağlı raporlamayı etkinleştirebilirsiniz ). Crashlytics, kullanıma hazır dört günlük kaydı mekanizması sağlar: özel anahtarlar , özel günlükler , kullanıcı tanımlayıcıları ve yakalanan istisnalar .
Özel anahtarlar ekleyin
Özel anahtarlar, uygulamanızın çökmeye yol açacak spesifik durumunu öğrenmenize yardımcı olur. Rastgele 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 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ü).
Anahtar/değer çiftlerini ayarlamak için setCustomValue
yöntemini kullanın. Örneğin:
Süratli
// Set int_key to 100. Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set str_key to "hello". Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")
Amaç-C
Tamsayıları, booleanları veya kayan sayıları ayarlarken değeri @( value )
olarak kutulayın.
// Set int_key to 100. [[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set str_key to "hello". [[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];
Mevcut bir anahtarın değerini, anahtarı çağırıp farklı bir değere ayarlayarak da değiştirebilirsiniz. Örneğin:
Süratli
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set int_key to 50 from 100. Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")
Amaç-C
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set int_key to 50 from 100. [[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];
Tek parametre olarak NSDictionary içeren setCustomKeysAndValues
yöntemini kullanarak anahtar/değer çiftlerini toplu olarak ekleyin:
Süratli
let keysAndValues = [ "string key" : "string value", "string key 2" : "string value 2", "boolean key" : true, "boolean key 2" : false, "float key" : 1.01, "float key 2" : 2.02 ] as [String : Any] Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)
Amaç-C
NSDictionary *keysAndValues = @{@"string key" : @"string value", @"string key 2" : @"string value 2", @"boolean key" : @(YES), @"boolean key 2" : @(NO), @"float key" : @(1.01), @"float key 2" : @(2.02)}; [[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];
Özel günlük mesajları ekleyin
Kilitlenmeye yol açan olaylarla ilgili kendinize daha fazla bağlam kazandırmak için uygulamanıza özel Crashlytics günlükleri ekleyebilirsiniz. Crashlytics, günlükleri kilitlenme verilerinizle ilişkilendirir ve bunları Firebase konsolunun Crashlytics sayfasında Günlükler sekmesi altında görüntüler.
Süratli
Sorunları belirlemeye yardımcı olması için log()
veya log(format:, arguments:)
kullanın. Mesajlarla birlikte kullanışlı bir günlük çıktısı almak istiyorsanız log()
a ilettiğiniz nesnenin CustomStringConvertible
özelliğine uygun olması gerekir. log()
nesne için tanımladığınız açıklama özelliğini döndürür. Örneğin:
Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")
.log(format:, arguments:)
getVaList()
çağrısından döndürülen değerleri formatlar. Örneğin:
Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))
log()
veya log(format:, arguments:)
nasıl kullanılacağına ilişkin daha fazla ayrıntı için Crashlytics referans belgelerine bakın.
Amaç-C
Sorunları tespit etmeye yardımcı olması için log
veya logWithFormat
kullanın. Mesajlarla faydalı bir günlük çıktısı almak istiyorsanız, her iki yönteme de ilettiğiniz nesnenin description
örneği özelliğini geçersiz kılması gerektiğini unutmayın. Örneğin:
[[FIRCrashlytics crashlytics] log:@"Simple string message"]; [[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict]; [[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];
log
ve logWithFormat
nasıl kullanılacağı hakkında daha fazla ayrıntı için Crashlytics referans belgelerine bakın.
Kullanıcı tanımlayıcılarını ayarlayın
Bir sorunu teşhis etmek için hangi kullanıcılarınızın belirli bir kilitlenmeyle karşılaştığını bilmek genellikle yararlı olur. Crashlytics, kilitlenme raporlarınızdaki kullanıcıları anonim olarak tanımlamanın bir yolunu içerir.
Raporlarınıza kullanıcı kimlikleri eklemek için her kullanıcıya kimlik numarası, belirteç veya karma değeri biçiminde benzersiz bir tanımlayıcı atayın:
Süratli
Crashlytics.crashlytics().setUserID("123456789")
Amaç-C
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
Bir kullanıcı tanımlayıcısını ayarladıktan sonra silmeniz 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 desteğiyle iletişime geçin .
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. Kullanıcılara gönderdikleri veriler üzerinde daha fazla kontrol sağlamak için, otomatik raporlamayı devre dışı bırakarak ve verileri yalnızca kodunuzda seçtiğinizde Crashlytics'e göndererek isteğe bağlı raporlamayı etkinleştirebilirsiniz:
Info.plist
dosyanıza yeni bir anahtar ekleyerek otomatik toplamayı kapatın:- Anahtar:
FirebaseCrashlyticsCollectionEnabled
- Değer:
false
- Anahtar:
Çalışma zamanında Crashlytics veri toplamayı geçersiz kılmayı çağırarak seçili kullanıcılar için veri toplamayı etkinleştirin. 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.Süratli
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
Amaç-C
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
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.