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

प्लैटफ़ॉर्म चुनें: iOS+ Android Flutter Unity


किसी समस्या पर क्लिक करके, Firebase कंसोल के DevOps और यूज़र ऐक्टिविटी > 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 रिपोर्ट इकट्ठा करके, नेटिव मेमोरी की गड़बड़ियों की वजह से होने वाले क्रैश को डीबग करने में आपकी मदद कर सकता है. मेमोरी से जुड़ी इन गड़बड़ियों का संबंध, आपके ऐप्लिकेशन में मेमोरी करप्शन से हो सकता है. यह ऐप्लिकेशन की सुरक्षा से जुड़े जोखिमों की मुख्य वजह है.

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 Console के 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 में एक्सपोर्ट करें, ताकि आपको बेहतर विश्लेषण और सुविधाएं मिल सकें. जैसे, अपने डेटा के बारे में क्वेरी करना, कस्टम डैशबोर्ड बनाना, और कस्टम अलर्ट सेट अप करना.