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


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

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

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

अपवादों की शिकायत करना

मिलने वाले अपवादों की रिपोर्ट करना

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

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

Crashlytics.LogException(Exception ex);

अपने गेम के try/catch ब्लॉक में, उम्मीद के मुताबिक अपवादों को लॉग किया जा सकता है:

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 report" के नए सिग्नल और फ़िल्टर का भी इस्तेमाल किया जा सकता है.

GWP-ASan की मेमोरी रिपोर्ट तब ही मिल सकती हैं, जब आपका ऐप्लिकेशन Unity के लिए Crashlytics SDK टूल के नए वर्शन (10.7.0 के बाद के वर्शन) का इस्तेमाल करता हो और उसमें 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 समस्याओं की सूची के सबसे ऊपर मौजूद, क्रैश की अहम जानकारी मेन्यू से, क्रैश की अहम जानकारी से ऑप्ट-आउट किया जा सकता है.