| प्लैटफ़ॉर्म चुनें: | iOS+ Android Flutter Unity |
किसी समस्या पर क्लिक करके, उसकी पूरी जानकारी वाली इवेंट रिपोर्ट देखी जा सकती है. इसके लिए, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड पर जाएं. इन रिपोर्ट को अपनी ज़रूरत के मुताबिक बनाया जा सकता है. इससे आपको यह समझने में मदद मिलेगी कि आपके ऐप्लिकेशन में क्या हो रहा है. साथ ही, Crashlytics को रिपोर्ट किए गए इवेंट की स्थितियों के बारे में भी जानकारी मिलेगी.
Crashlytics को कैच किए गए अपवाद और कैच नहीं किए गए अपवाद की रिपोर्ट करें.
मेमोरी करप्ट होने की समस्याओं को डीबग करने के लिए, GWP-ASan रिपोर्ट शामिल करें.
कस्टम कुंजियां, कस्टम लॉग मैसेज, और यूज़र आइडेंटिफ़ायर लॉग करने के लिए, अपने ऐप्लिकेशन को इंस्ट्रुमेंट करें.
अगर आपका ऐप्लिकेशन 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 रिपोर्ट इकट्ठा करता है. मेमोरी से जुड़ी ये गड़बड़ियां, आपके ऐप्लिकेशन में मेमोरी के खराब होने से जुड़ी हो सकती हैं. यह ऐप्लिकेशन की सुरक्षा से जुड़े जोखिमों की मुख्य वजह है.
Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड में जाकर, इस डेटा की मदद से ये काम किए जा सकते हैं:
किसी समस्या की जानकारी पर क्लिक करके, इस डेटा को नए "मेमोरी स्टैक ट्रेस" टैब में देखा जा सकता है.
"GWP-ASan रिपोर्ट" के नए सिग्नल और फ़िल्टर का इस्तेमाल करके, इस डेटा से जुड़ी सभी समस्याओं को तुरंत देखा जा सकता है.
अगर आपका ऐप्लिकेशन Unity के लिए नए Crashlytics SDK टूल (v10.7.0+) का इस्तेमाल करता है और उसमें GWP-ASan को साफ़ तौर पर चालू किया गया है, तो आपको GWP-ASan की मेमोरी रिपोर्ट मिल सकती हैं. इसके लिए, आपको अपने Android ऐप्लिकेशन मेनिफ़ेस्ट में बदलाव करना होगा. अगर आपके ऐप्लिकेशन में कोई C++ कोड है, तो Android दस्तावेज़ में दिए गए नेटिव कोड के उदाहरण का इस्तेमाल करके, GWP-ASan सेटअप की जांच की जा सकती है.
पसंद के मुताबिक बटन जोड़ना
कस्टम कुंजियों की मदद से, आपको ऐप्लिकेशन के क्रैश होने से पहले की स्थिति के बारे में जानकारी मिलती है. आपके पास अपनी क्रैश रिपोर्ट के साथ, अपनी पसंद के की-वैल्यू पेयर जोड़ने का विकल्प होता है. इसके बाद, कस्टम कुंजियों का इस्तेमाल करके, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड में क्रैश रिपोर्ट खोजी और फ़िल्टर की जा सकती हैं.
किसी कस्टम कुंजी से मैच होने वाली समस्याओं को खोजा जा सकता है.
कंसोल में किसी खास समस्या की समीक्षा करते समय, हर इवेंट (कुंजियां सब-टैब) के लिए उससे जुड़ी कस्टम कुंजियां देखी जा सकती हैं. साथ ही, कस्टम कुंजियों (पेज के सबसे ऊपर मौजूद फ़िल्टर मेन्यू) के हिसाब से इवेंट को फ़िल्टर भी किया जा सकता है.
कई बार कॉल किए जाने पर, मौजूदा कुंजियों की नई वैल्यू, वैल्यू को अपडेट कर देंगी. साथ ही, क्रैश रिकॉर्ड होने पर सिर्फ़ सबसे नई वैल्यू कैप्चर की जाती है.
Crashlytics.SetCustomKey(string key, string value);
कस्टम लॉग मैसेज जोड़ना
ऐप्लिकेशन क्रैश होने से पहले हुए इवेंट के बारे में ज़्यादा जानकारी पाने के लिए, अपने ऐप्लिकेशन में कस्टम Crashlytics लॉग जोड़े जा सकते हैं. Crashlytics, लॉग को आपके क्रैश डेटा से जोड़ता है. साथ ही, किसी समस्या की जानकारी देखने पर, उन्हें लॉग टैब में दिखाता है. अपनी सभी समस्याएं देखने के लिए, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड पर जाएं.
Crashlytics.Log(string message);
यूज़र आइडेंटिफ़ायर सेट करना
अपने ऐप्लिकेशन के असली उपयोगकर्ता की पहचान करने के लिए, आईडी नंबर, टोकन या हैश वैल्यू का इस्तेमाल किया जा सकता है. इसके लिए, आपको उपयोगकर्ता की कोई भी निजी जानकारी ज़ाहिर करने या उसे शेयर करने की ज़रूरत नहीं है. वैल्यू को खाली स्ट्रिंग पर सेट करके भी मिटाया जा सकता है. यह वैल्यू, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड में किसी खास क्रैश को देखते समय दिखती है.
Crashlytics.SetUserId(string identifier);
ब्रेडक्रंब लॉग पाना
ब्रेडक्रंब लॉग से आपको उन इंटरैक्शन के बारे में बेहतर जानकारी मिलती है जो किसी उपयोगकर्ता ने आपके ऐप्लिकेशन के साथ किए थे. इन इंटरैक्शन की वजह से, ऐप्लिकेशन क्रैश, नॉन-फ़ेटल या एएनआर इवेंट हुआ. इन लॉग से, किसी समस्या को फिर से जनरेट करने और उसे डीबग करने में मदद मिल सकती है.
ब्रेडक्रंब लॉग, Google Analytics की मदद से काम करते हैं. इसलिए, ब्रेडक्रंब लॉग पाने के लिए, आपको अपने Firebase प्रोजेक्ट के लिए Google Analytics चालू करना होगा. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा. ये ज़रूरी शर्तें पूरी होने के बाद, ब्रेडक्रंब लॉग अपने-आप किसी इवेंट के डेटा के साथ शामिल हो जाते हैं. यह डेटा, लॉग टैब में मौजूद होता है. यह टैब, किसी समस्या की जानकारी देखने पर दिखता है. अपनी सभी समस्याएं देखने के लिए, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड पर जाएं.
Analytics SDK, screen_view इवेंट को अपने-आप लॉग करता है. इससे ब्रेडक्रंब लॉग में, क्रैश, नॉन-फ़ेटल या एएनआर इवेंट से पहले देखी गई स्क्रीन की सूची दिखती है. screen_view ब्रेडक्रंब लॉग में firebase_screen_class पैरामीटर होता है.
ब्रेडक्रंब लॉग में, उपयोगकर्ता के सेशन के दौरान मैन्युअल तरीके से लॉग किए गए कस्टम इवेंट भी शामिल होते हैं. इनमें इवेंट के पैरामीटर का डेटा भी शामिल होता है. इस डेटा से, उपयोगकर्ता की उन कार्रवाइयों की सीरीज़ देखी जा सकती है जिनकी वजह से ऐप्लिकेशन क्रैश हुआ, गंभीर गड़बड़ी हुई या एएनआर इवेंट हुआ.
ध्यान दें कि आपके पास Google Analytics डेटा को इकट्ठा और इस्तेमाल करने की प्रोसेस को कंट्रोल करने का विकल्प होता है. इसमें वह डेटा भी शामिल होता है जिससे ब्रेडक्रंब लॉग जनरेट होते हैं.
ऑप्ट-इन रिपोर्टिंग की सुविधा चालू करना
डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए, ऐप्लिकेशन के क्रैश होने की रिपोर्ट अपने-आप इकट्ठा करता है. उपयोगकर्ताओं को क्रैश की रिपोर्टिंग के लिए ऑप्ट-इन करने की सुविधा देकर, उन्हें अपने भेजे गए डेटा पर ज़्यादा कंट्रोल दिया जा सकता है.
सिर्फ़ चुने गए उपयोगकर्ताओं के लिए, अपने-आप डेटा इकट्ठा होने की सुविधा बंद करने के लिए, रनटाइम के दौरान Crashlytics डेटा कलेक्शन ओवरराइड को कॉल करें. ओवरराइड वैल्यू, आपके ऐप्लिकेशन के बाद के सभी लॉन्च में बनी रहती है, ताकि Crashlytics उस उपयोगकर्ता के लिए रिपोर्ट अपने-आप इकट्ठा कर सके.
Crashlytics.IsCrashlyticsCollectionEnabled = true
अगर उपयोगकर्ता बाद में डेटा कलेक्शन से बाहर होता है, तो बदली गई वैल्यू के तौर पर false को पास किया जा सकता है. यह वैल्यू, उपयोगकर्ता के अगली बार ऐप्लिकेशन लॉन्च करने पर लागू होगी. साथ ही, उस उपयोगकर्ता के लिए बाद में होने वाले सभी लॉन्च पर लागू रहेगी.
क्रैश इनसाइट का डेटा मैनेज करना
क्रैश की अहम जानकारी की मदद से, समस्याओं को हल किया जा सकता है. इसके लिए, आपके ऐप्लिकेशन के स्टैक ट्रेस की तुलना, Firebase के अन्य ऐप्लिकेशन के स्टैक ट्रेस से की जाती है. इस दौरान, आपकी पहचान ज़ाहिर नहीं की जाती. इससे आपको यह जानने में मदद मिलती है कि आपकी समस्या किसी बड़े ट्रेंड का हिस्सा है या नहीं. कई समस्याओं के लिए, क्रैश इनसाइट आपको क्रैश को डीबग करने में मदद करने के लिए संसाधन भी उपलब्ध कराता है.
क्रैश इनसाइट, क्रैश से जुड़े एग्रीगेट किए गए डेटा का इस्तेमाल करके, ऐप्लिकेशन के क्रैश होने के सामान्य रुझानों की पहचान करता है. अगर आपको अपने ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो क्रैश इनसाइट से ऑप्ट-आउट किया जा सकता है. इसके लिए, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > Crashlytics डैशबोर्ड में, समस्या की सूची में सबसे ऊपर मौजूद क्रैश इनसाइट मेन्यू पर जाएं.
अगले चरण
- अपने डेटा को BigQuery या Cloud Logging में एक्सपोर्ट करें. इससे आपको बेहतर विश्लेषण और सुविधाओं का ऐक्सेस मिलेगा. जैसे, डेटा के बारे में क्वेरी करना, कस्टम डैशबोर्ड बनाना, और कस्टम अलर्ट सेट अप करना.