Crashlytics डैशबोर्ड में, किसी समस्या पर क्लिक करके इवेंट की ज़्यादा जानकारी वाली रिपोर्ट देखी जा सकती है. इन रिपोर्ट को अपनी ज़रूरत के मुताबिक बनाया जा सकता है. इससे आपको यह समझने में मदद मिलती है कि आपके ऐप्लिकेशन में क्या हो रहा है. साथ ही, Crashlytics को रिपोर्ट किए गए इवेंट के बारे में भी जानकारी मिलती है.
Crashlytics को कैच किए गए अपवादों और कैच नहीं किए गए अपवादों की रिपोर्ट करें.
मेमोरी करप्शन की समस्याओं को डीबग करने के लिए, GWP-ASan रिपोर्ट शामिल करें.
अपने ऐप्लिकेशन में कस्टम कुंजियां, कस्टम लॉग मैसेज, और उपयोगकर्ता आइडेंटिफ़ायर लॉग करने की सुविधा चालू करें.
अगर आपका ऐप्लिकेशन Google Analytics के लिए Firebase SDK टूल का इस्तेमाल करता है, तो आपको ब्रेडक्रंब लॉग अपने-आप मिल जाएंगे. इन लॉग से आपको यह पता चलता है कि आपके ऐप्लिकेशन में Crashlytics से इकट्ठा किए गए इवेंट से पहले, उपयोगकर्ता ने कौन-कौनसी कार्रवाइयां की थीं.
क्रैश की जानकारी अपने-आप रिपोर्ट होने की सुविधा बंद करें और उपयोगकर्ताओं के लिए, ऑप्ट-इन रिपोर्टिंग की सुविधा चालू करें. ध्यान दें कि डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए, क्रैश रिपोर्ट अपने-आप इकट्ठा करता है.
अपवादों की रिपोर्ट करना
अपवादों की रिपोर्ट करें
अगर आपको उम्मीद है कि कुछ अपवाद हो सकते हैं, तो Crashlytics एसडीके को उन्हें नॉन-फ़ैटल इवेंट के तौर पर रिपोर्ट करने के लिए कहा जा सकता है. इन इवेंट को डिवाइस पर लॉग किया जाता है. इसके बाद, इन्हें अगली फ़ैटल इवेंट रिपोर्ट के साथ भेजा जाता है. इसके अलावा, इन्हें तब भी भेजा जाता है, जब गेम का इस्तेमाल करने वाला व्यक्ति गेम को फिर से शुरू करता है.
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 रिपोर्ट" के नए सिग्नल और फ़िल्टर का इस्तेमाल भी किया जा सकता है.
अगर आपका ऐप्लिकेशन, 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
इवेंट को अपने-आप लॉग करता है. इससे ब्रेडक्रंब लॉग, क्रैश, नॉन-फ़ैटल या एएनआर इवेंट से पहले देखी गई स्क्रीन की सूची दिखा पाते हैं. screen_view
ब्रेडक्रंब लॉग में firebase_screen_class
पैरामीटर शामिल होता है.
ब्रेडक्रंब लॉग में, वे सभी कस्टम इवेंट भी शामिल होते हैं जिन्हें आपने उपयोगकर्ता के सेशन में मैन्युअल तरीके से लॉग किया है. इनमें इवेंट का पैरामीटर डेटा भी शामिल होता है. इस डेटा से, क्रैश, नॉन-फ़ैटल या एएनआर इवेंट से पहले उपयोगकर्ता की कार्रवाइयों की एक सीरीज़ दिखाई जा सकती है.
ध्यान दें कि आपके पास Google Analytics के डेटा को इकट्ठा करने और इस्तेमाल करने पर कंट्रोल होता है. इसमें वह डेटा भी शामिल है जो ब्रेडक्रंब लॉग में दिखता है.
ऑप्ट-इन रिपोर्टिंग की सुविधा चालू करना
डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप्लिकेशन के सभी उपयोगकर्ताओं के लिए गड़बड़ी की रिपोर्ट अपने-आप इकट्ठा करता है. क्रैश की रिपोर्टिंग के लिए ऑप्ट-इन करने की सुविधा देकर, उपयोगकर्ताओं को यह कंट्रोल दिया जा सकता है कि वे कौनसा डेटा भेजें.
अगर आपको सिर्फ़ चुने गए उपयोगकर्ताओं के लिए, अपने-आप होने वाले डेटा कलेक्शन की सुविधा बंद करनी है, तो रनटाइम में Crashlytics डेटा कलेक्शन ओवरराइड को कॉल करें. बदली गई वैल्यू, आपके ऐप्लिकेशन के सभी लॉन्च में बनी रहती है. इसलिए, Crashlytics उस उपयोगकर्ता के लिए रिपोर्ट अपने-आप इकट्ठा कर सकता है.
Crashlytics.IsCrashlyticsCollectionEnabled = true
अगर उपयोगकर्ता बाद में डेटा कलेक्शन से ऑप्ट-आउट करता है, तो false
को ओवरराइड वैल्यू के तौर पर पास किया जा सकता है. यह वैल्यू, उपयोगकर्ता के अगली बार ऐप्लिकेशन लॉन्च करने पर लागू होगी. साथ ही, उपयोगकर्ता के लिए ऐप्लिकेशन के सभी बाद के लॉन्च पर बनी रहेगी.
क्रैश इनसाइट के डेटा को मैनेज करना
क्रैश इनसाइट की मदद से, समस्याओं को हल किया जा सकता है. इसके लिए, यह सुविधा आपके बिना पहचान वाले स्टैक ट्रेस की तुलना, अन्य Firebase ऐप्लिकेशन के ट्रेस से करती है. साथ ही, यह भी बताती है कि आपकी समस्या किसी बड़े ट्रेंड का हिस्सा है या नहीं. कई समस्याओं के लिए, क्रैश इनसाइट की सुविधा में ऐसे संसाधन भी उपलब्ध होते हैं जिनकी मदद से, क्रैश की समस्या को डीबग किया जा सकता है.
क्रैश इनसाइट, क्रैश से जुड़े इकट्ठा किए गए डेटा का इस्तेमाल करके, स्थिरता से जुड़े सामान्य ट्रेंड की पहचान करती है. अगर आपको अपने ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो Firebase कंसोल में, Crashlytics समस्या की सूची के सबसे ऊपर मौजूद क्रैश की अहम जानकारी मेन्यू से, क्रैश की अहम जानकारी पाने की सुविधा से ऑप्ट-आउट किया जा सकता है.