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

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

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

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

रिपोर्ट के अपवाद

मिले अपवादों की शिकायत करें

अगर आपको लगता है कि कुछ अपवाद हो सकते हैं, तो Crashlytics SDK टूल की मदद से, उन्हें नुकसान पहुंचाने वाले इवेंट के तौर पर रिपोर्ट किया जा सकता है. इन इवेंट को डिवाइस पर लॉग किया जाता है और फिर किसी गंभीर घटना की रिपोर्ट के साथ या असली उपयोगकर्ता के गेम को रीस्टार्ट करने पर भेजा जाता है.

नीचे दिए गए तरीके का इस्तेमाल करके, C# में अपवादों को लॉग किया जा सकता है:

Crashlytics.LogException(Exception ex);

अपने गेम के 'ट्राई करें/कैच करें' ब्लॉक में, अपवादों की जानकारी दी जा सकती है:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

उन अपवादों की शिकायत करें जिनकी पहचान नहीं हुई है

ऐसे अपवाद जो आपके गेम को क्रैश नहीं करते (उदाहरण के लिए, गेम लॉजिक में C# अपवाद), Crashlytics SDK टूल की मदद से इनकी रिपोर्ट नुकसान पहुंचाने वाले इवेंट के तौर पर की जा सकती है. इसके लिए, आपको Crashlytics.ReportUncaughtExceptionsAsFatal प्रॉपर्टी को true पर सेट करने का विकल्प मिलेगा. इसके लिए, आपको अपने Unity प्रोजेक्ट में Crashlytics का इस्तेमाल शुरू करना होगा . Crashlytics को इन इवेंट की रिपोर्ट रीयल-टाइम में दी जाती है. इसके लिए, असली उपयोगकर्ता को गेम रीस्टार्ट करने की ज़रूरत नहीं होती.

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

ध्यान दें कि नेटिव क्रैश को हमेशा नुकसान पहुंचाने वाले इवेंट के तौर पर रिपोर्ट किया जाता है. ये इवेंट डिवाइस पर लॉग किए जाते हैं और जब असली उपयोगकर्ता गेम को रीस्टार्ट करता है, तो इन्हें भेजा जाता है.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

मेमोरी के खराब होने की समस्याओं को डीबग करने के लिए, GWP-ASan की रिपोर्ट शामिल करें

IL2CPP का इस्तेमाल करने वाले Android ऐप्लिकेशन के लिए, Crashlytics, GWP-ASan की रिपोर्ट इकट्ठा करके, नेटिव मेमोरी की गड़बड़ियों की वजह से होने वाले क्रैश को डीबग करने में आपकी मदद कर सकता है. मेमोरी से जुड़ी ये गड़बड़ियां आपके ऐप्लिकेशन में मेमोरी के खराब होने की वजह से हो सकती हैं. यह ऐप्लिकेशन की सुरक्षा से जुड़े जोखिमों की मुख्य वजह है.

  • Crashlytics के डैशबोर्ड में किसी समस्या की जानकारी पर क्लिक करके, इस डेटा को एक नए "मेमोरी स्टैक ट्रेस" टैब में देखा जा सकता है.

  • इस डेटा की सभी समस्याओं को तुरंत देखने के लिए, नए "GWP-ASan रिपोर्ट" सिग्नल और फ़िल्टर का इस्तेमाल किया जा सकता है.

अगर आपके ऐप्लिकेशन में Unity के लिए सबसे नए Crashlytics SDK टूल (v10.7.0+) का इस्तेमाल किया गया है और GWP-ASan को साफ़ तौर पर चालू किया गया है, तो आपको GWP-ASan की मेमोरी की रिपोर्ट मिल सकती है. हालांकि, आपको अपने Android ऐप्लिकेशन के मेनिफ़ेस्ट में बदलाव करना होगा. अगर आपके ऐप्लिकेशन में कोई C++ कोड मौजूद है, तो Android दस्तावेज़ में मौजूद नेटिव कोड का इस्तेमाल करके, GWP-ASan के सेटअप की जांच की जा सकती है.

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

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

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

कई बार कॉल किए जाने पर, मौजूदा कुंजियों के लिए नई वैल्यू वैल्यू को अपडेट करेंगी. साथ ही, क्रैश रिकॉर्ड होने पर सिर्फ़ सबसे मौजूदा वैल्यू ही कैप्चर की जाएगी.

Crashlytics.SetCustomKey(string key, string value);

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

लॉग किए गए मैसेज आपके क्रैश डेटा से जुड़े होते हैं. किसी खास क्रैश को देखते समय, Firebase Crashlytics के डैशबोर्ड में ये मैसेज दिखते हैं.

Crashlytics.Log(string message);

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

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

Crashlytics.SetUserId(string identifier);

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

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

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

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

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

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

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

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

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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