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