अपनी फायरबेस क्रैशलाइटिक्स क्रैश रिपोर्ट को अनुकूलित करें

क्रैशलिटिक्स डैशबोर्ड में, आप किसी समस्या पर क्लिक कर सकते हैं और विस्तृत ईवेंट रिपोर्ट प्राप्त कर सकते हैं। आपके ऐप में क्या हो रहा है और क्रैशलिटिक्स को रिपोर्ट की गई घटनाओं के आसपास की परिस्थितियों को बेहतर ढंग से समझने में मदद के लिए आप उन रिपोर्टों को कस्टमाइज़ कर सकते हैं।

  • यदि आपका ऐप Google Analytics के लिए फायरबेस एसडीके का उपयोग करता है तो स्वचालित रूप से ब्रेडक्रंब लॉग प्राप्त करें। ये लॉग आपको आपके ऐप में क्रैशलाईटिक्स-एकत्रित ईवेंट तक ले जाने वाली उपयोगकर्ता गतिविधियों की दृश्यता प्रदान करते हैं।

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

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

रिपोर्ट में अपवाद पकड़े गए

यदि आपके पास अपेक्षित अपवाद हैं, तो आप क्रैशलाईटिक्स एसडीके से उन्हें गैर-घातक घटनाओं के रूप में रिपोर्ट कर सकते हैं। इन घटनाओं को डिवाइस पर लॉग किया जाता है और फिर अगली घातक घटना रिपोर्ट के साथ या जब अंतिम उपयोगकर्ता गेम को पुनरारंभ करता है तो भेजा जाता है।

आप निम्न विधि का उपयोग करके C# में अपवाद लॉग कर सकते हैं:

Crashlytics.LogException(Exception ex);

आप अपने गेम के प्रयास/पकड़ ब्लॉक में अपेक्षित अपवाद लॉग कर सकते हैं:

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

न देखे गए अपवादों की रिपोर्ट करें

ऐसे अनदेखे अपवादों के लिए जो आपके गेम को क्रैश नहीं करते हैं (उदाहरण के लिए, गेम लॉजिक में अनकॉट C# अपवाद), आप Crashlytics SDK को Crashlytics.ReportUncaughtExceptionsAsFatal प्रॉपर्टी को true पर सेट करके उन्हें घातक घटनाओं के रूप में रिपोर्ट कर सकते हैं, जहां आप अपने यूनिटी प्रोजेक्ट में 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 रिपोर्ट एकत्र करके मूल मेमोरी त्रुटियों के कारण होने वाले क्रैश को डीबग करने में आपकी सहायता कर सकता है। ये मेमोरी-संबंधित त्रुटियां आपके ऐप के भीतर मेमोरी भ्रष्टाचार से जुड़ी हो सकती हैं, जो ऐप सुरक्षा कमजोरियों का प्रमुख कारण है।

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

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

यदि आपका ऐप यूनिटी के लिए नवीनतम क्रैशलिटिक्स एसडीके (v10.7.0+) का उपयोग करता है और GWP-ASan स्पष्ट रूप से सक्षम है (आपको अपने एंड्रॉइड ऐप मेनिफेस्ट को संशोधित करने की आवश्यकता है) तो आप GWP-ASan मेमोरी रिपोर्ट प्राप्त कर सकते हैं। यदि आपके ऐप में कोई C++ कोड है, तो आप Android दस्तावेज़ में उदाहरण मूल कोड का उपयोग करके अपने GWP-ASan सेटअप का परीक्षण कर सकते हैं।

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

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

  • क्रैशलिटिक्स डैशबोर्ड में, आप कस्टम कुंजी से मेल खाने वाले मुद्दों की खोज कर सकते हैं।
  • जब आप कंसोल में किसी विशिष्ट मुद्दे की समीक्षा कर रहे होते हैं, तो आप प्रत्येक ईवेंट के लिए संबंधित कस्टम कुंजियाँ ( कुंजियाँ उपटैब) देख सकते हैं और यहां तक ​​कि कस्टम कुंजियों द्वारा ईवेंट को फ़िल्टर भी कर सकते हैं (पृष्ठ के शीर्ष पर फ़िल्टर मेनू)।

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

Crashlytics.SetCustomKey(string key, string value);

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

लॉग किए गए संदेश आपके क्रैश डेटा से जुड़े होते हैं और किसी विशिष्ट क्रैश को देखते समय फायरबेस क्रैशलाइटिक्स डैशबोर्ड में दिखाई देते हैं।

Crashlytics.Log(string message);

उपयोगकर्ता पहचानकर्ता सेट करें

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

Crashlytics.SetUserId(string identifier);

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

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

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

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

ब्रेडक्रंब लॉग किसी भी कस्टम ईवेंट से भी भरे जाते हैं जिन्हें आप उपयोगकर्ता के सत्र में मैन्युअल रूप से लॉग करते हैं, जिसमें ईवेंट का पैरामीटर डेटा भी शामिल होता है। यह डेटा क्रैश, गैर-घातक, या ANR ईवेंट तक ले जाने वाली उपयोगकर्ता गतिविधियों की एक श्रृंखला दिखाने में मदद कर सकता है।

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

ऑप्ट-इन रिपोर्टिंग सक्षम करें

डिफ़ॉल्ट रूप से, Crashlytics स्वचालित रूप से आपके ऐप के सभी उपयोगकर्ताओं के लिए क्रैश रिपोर्ट एकत्र करता है। आप उपयोगकर्ताओं को क्रैश की रिपोर्ट करने का विकल्प चुनकर उनके द्वारा भेजे गए डेटा पर अधिक नियंत्रण दे सकते हैं।

स्वचालित संग्रह को अक्षम करने और केवल चयनित उपयोगकर्ताओं के लिए क्रैशलाईटिक्स को आरंभ करने के लिए, रनटाइम पर क्रैशलाईटिक्स डेटा संग्रह ओवरराइड को कॉल करें। ओवरराइड मान आपके ऐप के लॉन्च के दौरान बना रहता है इसलिए क्रैशलिटिक्स स्वचालित रूप से रिपोर्ट एकत्र कर सकता है। स्वचालित क्रैश रिपोर्टिंग से बाहर निकलने के लिए, ओवरराइड मान के रूप में false पास करें। जब false पर सेट किया जाता है, तो नया मान ऐप के अगले रन तक लागू नहीं होता है।

Crashlytics.IsCrashlyticsCollectionEnabled = true

क्रैश इनसाइट डेटा प्रबंधित करें

क्रैश इनसाइट्स आपके अज्ञात स्टैक ट्रेस की तुलना अन्य फायरबेस ऐप्स के ट्रेस से करके आपको समस्याओं को हल करने में मदद करता है और आपको बताता है कि क्या आपकी समस्या एक बड़े रुझान का हिस्सा है। कई मुद्दों के लिए, क्रैश इनसाइट्स आपको क्रैश को डीबग करने में मदद करने के लिए संसाधन भी प्रदान करता है।

क्रैश इनसाइट्स सामान्य स्थिरता रुझानों की पहचान करने के लिए एकत्रित क्रैश डेटा का उपयोग करता है। यदि आप अपने ऐप का डेटा साझा नहीं करना चाहते हैं, तो आप फायरबेस कंसोल में अपनी क्रैशलिटिक्स समस्या सूची के शीर्ष पर क्रैश इनसाइट्स मेनू से क्रैश इनसाइट्स से ऑप्ट-आउट कर सकते हैं।