Firebase Crashlytics की क्रैश रिपोर्ट को पसंद के मुताबिक बनाएं

Crashlytics डैशबोर्ड में, किसी समस्या पर क्लिक करके इवेंट की ज़्यादा जानकारी वाली रिपोर्ट देखी जा सकती है. इन रिपोर्ट को पसंद के मुताबिक बनाया जा सकता है, ताकि आप बेहतर तरीके से समझ सकें कि आपके ऐप्लिकेशन में क्या हो रहा है और Crashlytics को रिपोर्ट किए गए इवेंट से जुड़ी स्थितियां क्या हैं.

  • अगर आपका ऐप्लिकेशन Google Analytics के लिए Firebase SDK का इस्तेमाल करता है, तो ब्रेडक्रंब लॉग अपने-आप पाएं. इन लॉग की मदद से, आपके ऐप्लिकेशन में Crashlytics से इकट्ठा किए गए इवेंट की वजह से होने वाली उपयोगकर्ता कार्रवाइयों की जानकारी देखी जा सकती है.

  • अपने-आप क्रैश होने की रिपोर्ट करने की सुविधा बंद करें और अपने उपयोगकर्ताओं के लिए, ऑप्ट-इन रिपोर्ट करने की सुविधा चालू करें. ध्यान दें कि डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए, क्रैश रिपोर्ट अपने-आप इकट्ठा करता है.

कस्टम कुंजियां जोड़ें

कस्टम कुंजी की मदद से, यह पता लगाया जा सकता है कि ऐप्लिकेशन किस स्थिति में क्रैश हुआ है और उसके क्रैश होने की कितनी संभावना है. अपनी क्रैश रिपोर्ट को आर्बिट्रेरी कुंजी/वैल्यू पेयर के साथ जोड़ा जा सकता है. इसके बाद, Firebase कंसोल में क्रैश रिपोर्ट को खोजने और फ़िल्टर करने के लिए कस्टम कुंजियों का इस्तेमाल किया जा सकता है.

  • Crashlytics डैशबोर्ड में, कस्टम कुंजी से मेल खाने वाली समस्याओं को खोजा जा सकता है.
  • कंसोल में किसी खास समस्या की समीक्षा करते समय, हर इवेंट के लिए जोड़ी गई कस्टम कुंजियां (कुंजी सबटैब) देखी जा सकती हैं. यहां तक कि कस्टम कुंजियों (पेज पर सबसे ऊपर मौजूद फ़िल्टर मेन्यू) के हिसाब से इवेंट को फ़िल्टर भी किया जा सकता है.

की/वैल्यू पेयर सेट करने के लिए, setCustomValue तरीके का इस्तेमाल करें. उदाहरण के लिए:

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

पूर्णांक, बूलियन या फ़्लोट सेट करते समय, वैल्यू को @(value) के तौर पर बॉक्स करें.

// Set int_key to 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set str_key to "hello".
[[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];

किसी मौजूदा कुंजी की वैल्यू में बदलाव करने के लिए, कुंजी को कॉल करें और उसे किसी दूसरी वैल्यू पर सेट करें. उदाहरण के लिए:

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"];

सिर्फ़ एक पैरामीटर के तौर पर, NSDictionary के साथ setCustomKeysAndValues तरीके का इस्तेमाल करके, एक साथ कुंजी/वैल्यू के जोड़े जोड़ें:

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];

कस्टम लॉग मैसेज जोड़ना

ऐप्लिकेशन क्रैश होने की वजहों के बारे में ज़्यादा जानकारी देने के लिए, ऐप्लिकेशन में कस्टम Crashlytics लॉग जोड़ा जा सकता है. Crashlytics, लॉग को क्रैश डेटा से जोड़ता है. साथ ही, इन्हें लॉग टैब में मौजूद Firebase कंसोल के Crashlytics पेज पर दिखाता है.

Swift

समस्याओं की सटीक जानकारी पाने के लिए, log() या log(format:, arguments:) का इस्तेमाल करें. अगर आपको मैसेज के साथ काम का लॉग आउटपुट चाहिए, तो log() को पास किया जाने वाला ऑब्जेक्ट, CustomStringConvertible प्रॉपर्टी के मुताबिक होना चाहिए. log() वह जानकारी दिखाता है जो आपने ऑब्जेक्ट के लिए तय की है. उदाहरण के लिए:

Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")

getVaList() को कॉल करने पर मिले .log(format:, arguments:) फ़ॉर्मैट की वैल्यू. उदाहरण के लिए:

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

log() या log(format:, arguments:) इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, Crashlytics का रेफ़रंस दस्तावेज़ देखें.

Objective-C

समस्याओं की सटीक जानकारी पाने के लिए, log या logWithFormat का इस्तेमाल करें. ध्यान दें कि अगर आपको मैसेज के साथ काम का लॉग आउटपुट चाहिए, तो किसी भी तरीके में पास किया जाने वाला ऑब्जेक्ट, description इंस्टेंस प्रॉपर्टी को ओवरराइड करेगा. उदाहरण के लिए:

[[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 और logWithFormat इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, Crashlytics का रेफ़रंस दस्तावेज़ देखें.

उपयोगकर्ता आइडेंटिफ़ायर सेट करें

किसी समस्या का पता लगाने के लिए, यह जानना अक्सर मददगार होता है कि आपके किन उपयोगकर्ताओं को क्रैश का अनुभव हुआ है. Crashlytics से, ऐप्लिकेशन की क्रैश रिपोर्ट में उपयोगकर्ताओं की पहचान पहचानी जाने के लिए की जा सकती है.

अपनी रिपोर्ट में यूज़र आईडी जोड़ने के लिए, हर उपयोगकर्ता को आईडी नंबर, टोकन या हैश की गई वैल्यू के तौर पर एक यूनीक आइडेंटिफ़ायर असाइन करें:

Swift

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

Objective-C

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

अगर कभी आपको उपयोगकर्ता आइडेंटिफ़ायर सेट करने के बाद उसे हटाना पड़े, तो वैल्यू को खाली स्ट्रिंग पर रीसेट करें. उपयोगकर्ता आइडेंटिफ़ायर को मिटाने से, Crashlytics के मौजूदा रिकॉर्ड नहीं हटते हैं. अगर आपको किसी यूज़र आईडी से जुड़े रिकॉर्ड मिटाने हैं, तो Firebase सहायता टीम से संपर्क करें.

ब्रेडक्रंब लॉग पाएं

ब्रेडक्रंब लॉग से आपको इस बारे में बेहतर जानकारी मिलती है कि उपयोगकर्ता ने आपके ऐप्लिकेशन के साथ क्या इंटरैक्शन किया. इसकी वजह से, ऐप्लिकेशन क्रैश हो गया, कोई बड़ी गड़बड़ी हुई या ANR की गड़बड़ी हुई. इन लॉग से, किसी गड़बड़ी को फिर से समझने और उसे डीबग करने में मदद मिल सकती है.

ब्रेडक्रंब लॉग Google Analytics की मदद से काम करता है. इसलिए, ब्रेडक्रंब लॉग पाने के लिए, आपको अपने Firebase प्रोजेक्ट के लिए Google Analytics चालू करना होगा. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा. ये ज़रूरी शर्तें पूरी होने के बाद, किसी समस्या की जानकारी देखने पर, ब्रेडक्रंब लॉग को लॉग टैब में, इवेंट के डेटा के साथ अपने-आप शामिल कर दिया जाता है.

Analytics SDK टूल, screen_view इवेंट को अपने-आप लॉग करता है जिससे ब्रेडक्रंब लॉग, क्रैश, बिना नुकसान वाली या ANR इवेंट से पहले देखी गई स्क्रीन की सूची दिखाता है. screen_view ब्रेडक्रंब लॉग में एक firebase_screen_class पैरामीटर होता है.

ब्रेडक्रंब लॉग में ऐसे किसी भी कस्टम इवेंट की जानकारी अपने-आप भर जाती है जिसे उपयोगकर्ता के सेशन में मैन्युअल तरीके से लॉग किया जाता है. इसमें इवेंट का पैरामीटर डेटा भी शामिल होता है. इस डेटा से उपयोगकर्ता की कई तरह की कार्रवाइयों को दिखाया जा सकता है, जिनकी वजह से ऐप्लिकेशन क्रैश हो जाता है, ऐप्लिकेशन क्रैश होता है या ANR की गड़बड़ी होती है.

ध्यान दें कि आपके पास Google Analytics डेटा को इकट्ठा करने और उसके इस्तेमाल को कंट्रोल करने का विकल्प है. इसमें वह डेटा शामिल है जो ब्रेडक्रंब लॉग में अपने-आप जानकारी भरता है.

ऑप्ट-इन रिपोर्टिंग चालू करें

डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप्लिकेशन इस्तेमाल करने वाले सभी लोगों के लिए, क्रैश रिपोर्ट अपने-आप इकट्ठा करता है. उपयोगकर्ताओं को उनके भेजे जाने वाले डेटा पर ज़्यादा कंट्रोल देने के लिए, अपने-आप रिपोर्टिंग की सुविधा को बंद करके ऑप्ट-इन रिपोर्टिंग चालू की जा सकती है. साथ ही, Crashlytics को डेटा भेजने की सुविधा चालू की जा सकती है. ऐसा तब करें, जब आपने कोड में डेटा भेजने का विकल्प चुना हो:

  1. अपनी Info.plist फ़ाइल में एक नई कुंजी जोड़कर, डेटा अपने-आप इकट्ठा होने की सुविधा बंद करें:

    • बटन: FirebaseCrashlyticsCollectionEnabled
    • वैल्यू: false
  2. रनटाइम के दौरान, Crashlytics से डेटा कलेक्शन को बदलने वाले विकल्प को कॉल करके, चुनिंदा उपयोगकर्ताओं के लिए डेटा कलेक्शन की सुविधा चालू करें. बदलाव की वैल्यू आपके ऐप्लिकेशन के सभी लॉन्च पर बनी रहती है, ताकि Crashlytics से रिपोर्ट अपने-आप इकट्ठा हो सके.

    अपने-आप क्रैश होने की रिपोर्टिंग से ऑप्ट आउट करने के लिए, false को ओवरराइड वैल्यू के तौर पर पास करें. false पर सेट करने पर, नई वैल्यू तब तक लागू नहीं होती, जब तक ऐप्लिकेशन को अगली बार इस्तेमाल नहीं किया जाता.

    Swift

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    Objective-C

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

क्रैश की अहम जानकारी का डेटा मैनेज करना

'क्रैश की जानकारी' सुविधा की मदद से समस्याओं को हल किया जा सकता है. इसके लिए, आपकी पहचान ज़ाहिर किए बिना बनाए गए स्टैक ट्रेस की तुलना अन्य Firebase ऐप्लिकेशन के ट्रेस से की जाती है. इससे आपको यह भी पता चलता है कि आपकी समस्या किसी बड़े रुझान का हिस्सा है या नहीं. कई समस्याओं के लिए, क्रैश इनसाइट ऐसे संसाधन भी उपलब्ध कराता है जिनकी मदद से आप क्रैश को डीबग कर सकते हैं.

क्रैश इनसाइट, ऐप्लिकेशन क्रैश होने की जानकारी देने वाले एग्रीगेट किए गए डेटा का इस्तेमाल करता है, ताकि स्थिरता के सामान्य रुझानों की पहचान की जा सके. अगर आपको ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो Firebase कंसोल में Crashlytics से जुड़ी समस्याओं की सूची के सबसे ऊपर मौजूद क्रैश की अहम जानकारी मेन्यू में जाकर, क्रैश की अहम जानकारी से ऑप्ट-आउट किया जा सकता है.