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

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

ब्रेडक्रंब लॉग से आपको इस बारे में बेहतर जानकारी मिलती है कि उपयोगकर्ता ने आपके ऐप्लिकेशन के साथ क्या इंटरैक्शन किया. इसकी वजह से, ऐप्लिकेशन क्रैश हो गया, कोई बड़ी गड़बड़ी हुई या 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 को शुरू करने के लिए, रनटाइम के दौरान Crashlytics से डेटा कलेक्शन बदलने की प्रोसेस को शुरू करें. आपके ऐप्लिकेशन के सभी लॉन्च के लिए, ओवरराइड वैल्यू एक जैसी रहती है, ताकि Crashlytics से रिपोर्ट अपने-आप इकट्ठा हो सके. अपने-आप क्रैश होने की रिपोर्टिंग से ऑप्ट आउट करने के लिए, false को ओवरराइड वैल्यू के तौर पर पास करें. false पर सेट करने पर, नई वैल्यू ऐप्लिकेशन के अगली बार चलने तक लागू नहीं होती.

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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