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'e 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 ekmek kırıntıları 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ı devre dışı bırakın ve kullanıcılarınız için etkinleştirme raporlamasını etkinleştirin. 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, uygulamanızın kilitlenmesine yol açan belirli durumu öğ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 setCustomValue yöntemini kullanın. Örneğin:

Swift

// Set int_key to 100.
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set str_key to "hello".
Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")

Objective-C

Tam sayı, boole veya kayan nokta değerleri ayarlarken değeri @(value) olarak kutu içine alı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"];

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

Swift

Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set int_key to 50 from 100.
Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")

Objective-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:

Swift

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)

Objective-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ı ekleme

Kilitlenmeye yol açan etkinlikler hakkında daha fazla bilgi edinmek için uygulamanıza özel Crashlytics günlükleri ekleyebilirsiniz. Crashlytics, günlükleri kilitlenme verilerinizle ilişkilendirir ve Firebase konsolunun Günlükler sekmesinde Crashlytics sayfasında gösterir.

Swift

Sorunları tespit etmek için log() veya log(format:, arguments:) simgesini kullanın. Mesajlar içeren yararlı bir günlük çıkışı almak istiyorsanız log()'e ilettiğiniz nesne CustomStringConvertible mülküne uygun olmalıdır. 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 biçimlendirir. Örneğin:

Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))

log() veya log(format:, arguments:)'un nasıl kullanılacağı hakkında daha fazla bilgi için Crashlytics referans dokümanlarına bakın.

Objective-C

Sorunları tespit etmek için log veya logWithFormat simgesini kullanın. İletiler içeren yararlı bir günlük çıkışı almak istiyorsanız her iki yönteme de ilettiğiniz nesnenin description örnek ö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'un nasıl kullanılacağı hakkında daha fazla bilgi için Crashlytics referans dokümanlarına bakın.

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

Bir sorunu teşhis etmek için genellikle hangi kullanıcılarınızın belirli bir kilitlenme yaşadığını bilmek yararlıdır. 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 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:

Swift

Crashlytics.crashlytics().setUserID("123456789")

Objective-C

[[FIRCrashlytics crashlytics] setUserID:@"123456789"];

Bir kullanıcı tanımlayıcısını ayarladıktan sonra temizlemeniz gerekirse değeri boş bir dizeye sıfırlayın. 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.

İçerik haritası günlüklerini alma

Kırıntı günlükleri, kullanıcının uygulamanızla yaptığı ve kilitlenme, ölümcül olmayan veya ANR etkinliğine yol açan etkileşimleri daha iyi anlamanızı sağlar. Bu günlükler, bir sorunu yeniden oluşturmaya ve hata ayıklama işlemine ç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üğü bir firebase_screen_class parametresi içeriyor.

Kırıntı günlükleri, etkinliğin parametre verileri de dahil olmak üzere kullanıcı oturumunda manuel olarak kaydettiğiniz tüm özel etkinliklerle de doldurulur. Bu veriler, kilitlenmeye, ölümcül olmayan bir kilitlenmeye 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 arasında, içerik haritası günlüklerini dolduran veriler de bulunur.

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. Info.plist dosyanıza yeni bir anahtar ekleyerek otomatik toplamayı devre dışı bırakın:

    • Anahtar: FirebaseCrashlyticsCollectionEnabled
    • Değer: false
  2. Çalışma zamanında Crashlytics veri toplama geçersiz kılma işlevini çağırarak belirli kullanıcılar için toplamayı etkinleştirin. Üzeride yazılma değeri, Crashlytics'ün raporları otomatik olarak toplayabilmesi için uygulamanızın lansmanlarında devam eder.

    Otomatik kilitlenme raporlamasını devre dışı bırakmak için geçersiz kılma değeri olarak false'ü iletin. false olarak ayarlandığında yeni değer, uygulamanın bir sonraki çalıştırılmasına kadar uygulanmaz.

    Swift

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    Objective-C

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

Kilitlenme Analizleri verilerini yönetme

Kilitlenme Analizleri, anonimleştirilmiş yığın izlemelerinizi diğer Firebase uygulamalarından alınan izlemelerle karşılaştırarak ve sorununuzun daha büyük bir trendin parçası olup olmadığını bildirerek sorunları çözmenize yardımcı olur. Kilitlenme Analizleri, birçok sorun için kilitlenmeyi ayıklamanıza yardımcı olacak kaynaklar bile sağlar.

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