Crashlytics से जुड़ी समस्या हल करने और अक्सर पूछे जाने वाले सवाल
इस पेज पर, समस्या को हल करने के लिए सहायता और अक्सर पूछे जाने वाले सवालों के जवाब दिए गए हैं
Crashlytics का इस्तेमाल करने के बारे में सवाल. अगर आपको
आप जो खोज रहे हैं, वह नहीं मिल सकता या अतिरिक्त सहायता चाहिए, तो संपर्क करें
Firebase सहायता.
सामान्य समस्याएं हल करना/अक्सर पूछे जाने वाले सवाल
अलग-अलग फ़ॉर्मैट देखना
समस्याएं टेबल में मौजूद कुछ समस्याओं के लिए, कभी-कभी "वैरिएंट") भी देखे जा सकते हैं
आपको समस्याएं टेबल में दी गई समस्याओं के लिए दो अलग-अलग फ़ॉर्मैट दिख सकते हैं
देखें. और आपको एक ऐसी सुविधा भी दिख सकती है जिसे
"वैरिएंट" को हल किया जा सकता है. इसकी वजह यह है!
साल 2023 की शुरुआत में, हमने इवेंट का ग्रुप बनाने के लिए, बेहतर विश्लेषण इंजन लॉन्च किया था
साथ ही, एक नया वर्शन है. साथ ही, इसमें नई समस्याओं के लिए कुछ ऐडवांस सुविधाएं भी जोड़ी गई हैं (जैसे
अलग-अलग वर्शन!). हमारा हाल ही का
ब्लॉग पोस्ट
देखें, लेकिन आप नीचे हाइलाइट पढ़ सकते हैं.
Crashlytics, आपके ऐप्लिकेशन के सभी इवेंट का विश्लेषण करता है. जैसे- क्रैश, नुकसान न पहुंचाने वाले,
और ANR) के डेटा का इस्तेमाल करके, समस्याएं नाम के इवेंट के ग्रुप बनाता है.
एक ही समस्या है.
इवेंट को इन समस्याओं के ग्रुप में बांटने के लिए, बेहतर विश्लेषण इंजन
इनमें इवेंट से जुड़े कई पहलू शामिल हैं. जैसे, स्टैक ट्रेस में दिखने वाले फ़्रेम,
अपवाद संदेश, गड़बड़ी कोड, और अन्य प्लैटफ़ॉर्म या गड़बड़ी प्रकार
विशेषताएं.
हालांकि, इवेंट के इस ग्रुप में इस्तेमाल किए गए स्टैक ट्रेस फ़ेल हो जाते हैं
अलग हो सकता है. अगर स्टैक ट्रेस अलग है, तो इसकी अलग वजह हो सकती है.
किसी समस्या में इस संभावित अंतर को दिखाने के लिए, अब हम
समस्याओं में मौजूद वैरिएंट - हर वैरिएंट किसी समस्या में इवेंट का सब-ग्रुप होता है
जिनका फ़ेलियर पॉइंट और एक जैसा स्टैक ट्रेस है. वैरिएंट की मदद से,
की मदद से किसी समस्या में मौजूद सबसे सामान्य स्टैक ट्रेस को डीबग किया जा सकता है. साथ ही, यह तय किया जा सकता है कि
अलग-अलग मुख्य वजहों से गड़बड़ी हो रही है.
इन सुधारों से आपको मिलने वाले फ़ायदों के बारे में यहां बताया गया है:
समस्या वाली लाइन में बेहतर मेटाडेटा दिखाया जाता है अब आपके ऐप्लिकेशन में समस्याओं को समझना और उन्हें प्राथमिकता के हिसाब से निपटाना आसान हो गया है.
डुप्लीकेट समस्याएं कम होंगी लाइन नंबर में बदलाव करने से नई समस्या नहीं आती.
अलग-अलग मूल वजहों से, जटिल समस्याओं को आसानी से डीबग करना किसी समस्या में सबसे सामान्य स्टैक ट्रेस को डीबग करने के लिए, वैरिएंट का इस्तेमाल करें.
बेहतर सूचनाएं और सिग्नल एक नई समस्या से असल में एक नई गड़बड़ी का पता चलता है.
ज़्यादा असरदार तरीके से खोजें हर समस्या में ऐसा मेटाडेटा होता है जिसे खोजा जा सके,
जैसे, अपवाद का टाइप और पैकेज का नाम.
इन सुधारों के रोल आउट होने का तरीका यहां बताया गया है:
आपके ऐप्लिकेशन से नए इवेंट मिलने पर, हम जांच करेंगे कि वे किसी मौजूदा इवेंट से मेल खाते हैं या नहीं
समस्या.
अगर कोई भी मैच नहीं होता है, तो हम अपने-आप बेहतर इवेंट-ग्रुपिंग की सुविधा लागू कर देंगे
एल्गोरिदम को इवेंट में शामिल किया जाता है और नए मेटाडेटा की मदद से नई समस्या पैदा की जाती है
डिज़ाइन.
यह पहला बड़ा अपडेट है, जिसे हम अपने इवेंट के ग्रुप में लागू कर रहे हैं. अगर आपको
आपको कोई सुझाव/राय देनी है या शिकायत करनी है, तो कृपया हमें इस तरीके से बताएं
शिकायत दर्ज करना.
नहीं दिख रहा है
क्रैश-फ़्री मेट्रिक और/या वेलोसिटी अलर्ट
अगर आपको क्रैश-फ़्री मेट्रिक (जैसे, बिना क्रैश होने वाले उपयोगकर्ता और सेशन) नहीं दिख रही है
और/या वेग के अलर्ट से पहले, सुनिश्चित करें कि आप
Crashlytics SDK टूल 11.7.0 के बाद का वर्शन.
ब्रेडक्रंब लॉग नहीं दिख रहे हैं
अगर आपको अपने
ब्रेडक्रंब लॉग,
हमारा सुझाव है कि आप Google Analytics के लिए अपने ऐप्लिकेशन के कॉन्फ़िगरेशन की जांच करें.
पक्का करें कि आपने ये ज़रूरी शर्तें पूरी की हों:
इसका इस्तेमाल किया जा रहा है:
Firebase SDK टूल के नए वर्शन
उन सभी प्रॉडक्ट के लिए लागू करें जिनका इस्तेमाल आपके ऐप्लिकेशन में किया जाता है.
कोई सिम्बॉलिकेट नहीं दिख रहा
Crashlytics के डैशबोर्ड में, Android ऐप्लिकेशन के लिए स्टैक ट्रेस की सुविधा
अगर Unity IL2CPP का इस्तेमाल किया जा रहा है
और आपको बिना सिंबल वाले स्टैक ट्रेस दिख रहे हैं, तो नीचे दिया गया तरीका आज़माएं:
पक्का करें कि Crashlytics Unity के वर्शन 8.6.1 या इसके बाद वाले वर्शन का इस्तेमाल किया जा रहा हो
SDK टूल.
पक्का करें कि आपने Firebase सीएलआई को सेट अप कर लिया है और उसे चला रहा है
आपका सिंबल जनरेट और अपलोड करने के लिए crashlytics:symbols:upload कमांड
फ़ाइल से लिए जाते हैं.
रिलीज़ बनाने के दौरान, आपको हर बार यह सीएलआई कमांड चलाना होगा
बिल्ड या ऐसा कोई बिल्ड जिसमें आपको सिम्बॉलिकेट किए गए स्टैक ट्रेस देखने हैं
Firebase कंसोल. ज़्यादा जानकारी के लिए इस लिंक पर जाएं
क्रैश रिपोर्ट आसानी से पढ़ने लायक बनाना
करें.
क्या Crashlytics का इस्तेमाल किया जा सकता है
क्या आपके पास IL2CPP इस्तेमाल करने वाले ऐप्लिकेशन हैं?
हां, Crashlytics, सिम्बॉलिकेट किए गए आपके ऐप्लिकेशन के लिए स्टैक ट्रेस दिखा सकता है.
IL2CPP का इस्तेमाल करें. यह सुविधा, Android पर रिलीज़ किए गए ऐप्लिकेशन या
Apple प्लैटफ़ॉर्म. यहां बताया गया है कि आपको क्या करना होगा:
पक्का करें कि Crashlytics Unity के v8.6.0 या इसके बाद के वर्शन का इस्तेमाल किया जा रहा हो
SDK टूल.
अपने प्लैटफ़ॉर्म के लिए ज़रूरी टास्क पूरे करें:
Apple प्लैटफ़ॉर्म ऐप्लिकेशन के लिए: किसी खास कार्रवाई की ज़रूरत नहीं है. Apple के लिए
प्लैटफ़ॉर्म ऐप्लिकेशन के साथ काम करता है, तो Firebase यूनिटी एडिटर प्लगिन अपने-आप कॉन्फ़िगर हो जाता है
आपके Xcode प्रोजेक्ट में सिंबल अपलोड किए जाएंगे.
Android ऐप्लिकेशन के लिए: पक्का करें कि आपने
Firebase सीएलआई crashlytics:symbols:upload कमांड जनरेट करने और
अपनी सिंबल फ़ाइल अपलोड करें.
रिलीज़ बनाने के दौरान, आपको हर बार यह सीएलआई कमांड चलाना होगा
बिल्ड या ऐसा कोई बिल्ड जिसमें आपको सिम्बॉलिकेट किए गए स्टैक ट्रेस देखने हैं
Firebase कंसोल. ज़्यादा जानकारी के लिए इस लिंक पर जाएं
क्रैश रिपोर्ट आसानी से पढ़ने लायक बनाना
करें.
उन उपयोगकर्ताओं का हिसाब कैसे लगाया जाता है जिन्हें ऐप्लिकेशन क्रैश नहीं हुआ?
क्रैश-फ़्री वैल्यू से पता चलता है कि कितने प्रतिशत उपयोगकर्ताओं ने आपकी
ऐप्लिकेशन, लेकिन एक खास समयावधि में क्रैश नहीं हुआ हो.
यहां उन उपयोगकर्ताओं के प्रतिशत का हिसाब लगाने का फ़ॉर्मूला दिया गया है जिन्हें ऐप्लिकेशन क्रैश नहीं होने दिया गया. इसका इनपुट
ये वैल्यू Google Analytics से मिलती हैं.
CRASH_FREE_USERS_PERCENTAGE = 1 - (CRASHED_USERS / ALL_USERS) x 100
क्रैश होने पर, Google Analytics एक app_exception इवेंट भेजता है
टाइप और CRASHED_USERS, जुड़े हुए उपयोगकर्ताओं की संख्या दिखाता है
उस इवेंट टाइप के साथ.
ALL_USERS से पता चलता है कि कितने उपयोगकर्ताओं ने आपसे जुड़ा
आपके द्वारा चुनी गई समयावधि के दौरान आपका ऐप्लिकेशन
Crashlytics डैशबोर्ड के सबसे ऊपर दाईं ओर मौजूद होता है.
जिन उपयोगकर्ताओं ने ऐप्लिकेशन क्रैश नहीं किया है उनका प्रतिशत समय के साथ इकट्ठा होने वाला है, न कि औसत.
उदाहरण के लिए, मान लें कि आपके ऐप्लिकेशन को तीन उपयोगकर्ता इस्तेमाल करते हैं; हम उन्हें उपयोगकर्ता A, उपयोगकर्ता B,
और उपयोगकर्ता सी. इस टेबल से पता चलता है कि हर दिन कौनसे उपयोगकर्ता आपके ऐप्लिकेशन से जुड़े
और उनमें से किन उपयोगकर्ताओं का उस दिन क्रैश हुआ था:
सोमवार
मंगलवार
बुधवार
आपके ऐप्लिकेशन से जुड़े उपयोगकर्ता
A, B, C
A, B, C
A, B
वह उपयोगकर्ता जिसका ऐप्लिकेशन क्रैश हो गया था
C
B
A
बुधवार को, आपका ऐप्लिकेशन इस्तेमाल करने वाले लोगों का प्रतिशत 50% है. (2 में से 1 उपयोगकर्ता यह था
क्रैश नहीं होता है). अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
आपके दो उपयोगकर्ता बुधवार को आपके ऐप्लिकेशन में जुड़े, लेकिन उनमें से सिर्फ़ एक ही था
(उपयोगकर्ता B) में कोई क्रैश नहीं हुआ.
पिछले दो दिनों में, उन उपयोगकर्ताओं का प्रतिशत 33.3% (3 में से 1) है जिन्हें ऐप्लिकेशन क्रैश नहीं हुआ
उपयोगकर्ताओं को क्रैश होने की समस्या का सामना नहीं करना पड़ा). अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
पिछले दो दिनों में, आपके तीन उपयोगकर्ता आपके ऐप्लिकेशन से जुड़े. हालांकि,
इनमें से एक (उपयोगकर्ता C) में कोई क्रैश नहीं हुआ.
पिछले तीन दिनों में, उन उपयोगकर्ताओं का प्रतिशत 0% है जिन्हें ऐप्लिकेशन क्रैश नहीं हुआ (3 में से 0)
उपयोगकर्ताओं को क्रैश की समस्या नहीं मिली). अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
पिछले तीन दिनों में आपके तीन उपयोगकर्ता आपके ऐप्लिकेशन से जुड़े, लेकिन
उनमें से शून्य में कोई क्रैश नहीं हुआ.
उन उपयोगकर्ताओं के मान की तुलना अलग-अलग समयावधि के दौरान नहीं की जानी चाहिए जिन पर ऐप्लिकेशन क्रैश नहीं हुआ.
किसी एक उपयोगकर्ता के क्रैश होने की संभावना उतनी ही ज़्यादा होती है जितनी बार वह क्रैश होता है
अपने ऐप्लिकेशन का इस्तेमाल करते हैं, तो जिन उपयोगकर्ताओं के लिए आपका ऐप्लिकेशन बंद नहीं हुआ है उनकी वैल्यू लंबे समय तक कम हो सकती है
समयावधि.
किसी समस्या पर नोट कौन देख सकता है, लिख सकता है, और मिटा सकता है?
नोट की मदद से, प्रोजेक्ट के सदस्य किसी समस्या पर टिप्पणी कर सकते हैं. जैसे, सवाल और स्टेटस
अपडेट वगैरह.
जब प्रोजेक्ट का कोई सदस्य नोट पोस्ट करता है, तो उस पर अपने Google खाते के ईमेल पते का लेबल दिखता है
जोड़ें. यह ईमेल पता, नोट के साथ सभी प्रोजेक्ट में दिखता है
वे सदस्य जिनके पास नोट देखने का ऐक्सेस है.
नीचे दिए गए दस्तावेज़ में बताया गया है कि फ़ाइल को देखने, उसमें बदलाव करने, और उसे मिटाने के लिए, कौन-कौनसे ऐक्सेस ज़रूरी हैं
ध्यान दें:
प्रोजेक्ट के ऐसे सदस्य जिनके पास नीचे दी गई कोई भी भूमिका है, वे मौजूदा भूमिका को देख और मिटा सकते हैं
किसी समस्या पर नोट लिखें और नए नोट लिखें.
प्रोजेक्ट के ऐसे सदस्य जो इनमें से किसी भूमिका में हैं, वे यहां पोस्ट किए गए नोट देख सकते हैं
कोई समस्या हो सकती है, लेकिन वे नोट मिटा या लिख नहीं सकते.
किसी समस्या पर नोट कौन देख सकता है, लिख सकता है, और मिटा सकता है?
नोट की मदद से, प्रोजेक्ट के सदस्य किसी समस्या पर टिप्पणी कर सकते हैं. जैसे, सवाल और स्टेटस
अपडेट वगैरह.
जब प्रोजेक्ट का कोई सदस्य नोट पोस्ट करता है, तो उस पर अपने Google खाते के ईमेल पते का लेबल दिखता है
जोड़ें. यह ईमेल पता, नोट के साथ सभी प्रोजेक्ट में दिखता है
वे सदस्य जिनके पास नोट देखने का ऐक्सेस है.
नीचे दिए गए दस्तावेज़ में बताया गया है कि फ़ाइल को देखने, उसमें बदलाव करने, और उसे मिटाने के लिए, कौन-कौनसे ऐक्सेस ज़रूरी हैं
ध्यान दें:
प्रोजेक्ट के ऐसे सदस्य जिनके पास नीचे दी गई कोई भी भूमिका है, वे मौजूदा भूमिका को देख और मिटा सकते हैं
किसी समस्या पर नोट लिखें और नए नोट लिखें.
प्रोजेक्ट के ऐसे सदस्य जो इनमें से किसी भूमिका में हैं, वे यहां पोस्ट किए गए नोट देख सकते हैं
कोई समस्या हो सकती है, लेकिन वे नोट मिटा या लिख नहीं सकते.
ऐप
Google Mobile Ads SDK, लेकिन क्रैश नहीं हो रहे हैं
अगर आपका प्रोजेक्ट, Google Mobile Ads SDK के साथ-साथ Crashlytics का इस्तेमाल करता है, तो
तो क्रैश रिपोर्टर किसी गड़बड़ी की वजह से
अपवाद हैंडलर रजिस्टर करना. इस समस्या को ठीक करने के लिए, यहां जाकर क्रैश रिपोर्ट की सुविधा बंद करें
मोबाइल विज्ञापन SDK टूल का इस्तेमाल करने के लिए, disableSDKCrashReporting पर कॉल करें.
मेरा BigQuery डेटासेट कहां है?
Crashlytics को BigQuery से लिंक करने के बाद, जो नए डेटासेट बनाए जाते हैं वे:
अपने आप संयुक्त राज्य अमेरिका में रहते हैं, भले ही आपका
Firebase प्रोजेक्ट.
ऐसी समस्याएं जिनका समाधान नहीं हुआ है
रिग्रेशन क्या है
समस्या?
जब आपने समस्या को पहले बंद कर दिया था, तो उसका रिग्रेशन आ गया था. हालांकि,
Crashlytics को एक नई रिपोर्ट मिलती है, जिसमें यह समस्या दोबारा हुई है.
Crashlytics, वापस आने वाली इन समस्याओं को अपने-आप वापस खोलता है, ताकि आपको
समाधान देते हैं.
यहां उदाहरण के तौर पर एक उदाहरण दिया गया है. इसमें बताया गया है कि Crashlytics, किसी कैटगरी में
रिग्रेशन के तौर पर समस्या होने पर:
पहली बार, Crashlytics को क्रैश के बारे में क्रैश रिपोर्ट मिली है
"A". Crashlytics से, क्रैश से जुड़ी समस्या (समस्या "A") खुलती है.
आप इस बग को तेज़ी से ठीक करते हैं, समस्या "A" को बंद करते हैं, और फिर इसका नया संस्करण रिलीज़ करते हैं
आपका ऐप्लिकेशन.
Crashlytics को समस्या "A" के बारे में एक और रिपोर्ट मिली खाता बंद करने के बाद
समस्या.
अगर रिपोर्ट किसी ऐसे ऐप्लिकेशन वर्शन से है जिसके बारे में Crashlytics को पता है
जब आपने समस्या को बंद कर दिया (इसका मतलब है कि ऐप्लिकेशन के क्रैश होने की वजह से
किसी भी क्रैश की रिपोर्ट करता है, तो Crashlytics,
समस्या को वापस पाया जा सकता है. समस्या बंद रहेगी.
अगर रिपोर्ट किसी ऐसे ऐप्लिकेशन वर्शन से है जिसे Crashlytics ने नहीं किया है
के बारे में जानें (यानी वर्शन को
कभी भी किसी भी क्रैश के लिए कोई भी क्रैश रिपोर्ट न भेजी हो, तो
Crashlytics, समस्या के हल को वापस पाने की कोशिश करता है और समस्या को हल करने के लिए,
समस्या.
जब कोई समस्या वापस आती है, तो हम रिग्रेशन का पता चलने पर चेतावनी भेजते हैं और
समस्या के रिग्रेशन सिग्नल से आपको पता चलता है कि Crashlytics से
समस्या को फिर से खोला गया है. अगर आप नहीं चाहते कि हमारी
रिग्रेशन एल्गोरिदम, "म्यूट" समस्या को हल करने में मदद करता है.
मुझे वापस खरीदारी क्यों नहीं हो रही है
ऐप्लिकेशन के पुराने वर्शन में कोई समस्या है?
अगर कोई रिपोर्ट किसी ऐसे पुराने ऐप्लिकेशन वर्शन से है जिसने अभी तक कोई क्रैश रिपोर्ट नहीं भेजी है
समस्या को हल कर देते हैं, तो Crashlytics उस समस्या पर गौर करता है
इस समस्या को दोबारा हल कर दिया जाएगा.
यह स्थिति नीचे दी गई स्थितियों में आ सकती है: आपने कोई गड़बड़ी ठीक कर ली है और
ने आपके ऐप्लिकेशन का नया वर्शन रिलीज़ किया है, लेकिन आपके उपयोगकर्ताओं में अब भी पुराने वर्शन हैं
उसे ठीक किए बिना. अगर संयोग से, उन पुराने वर्शन में से किसी एक को कभी नहीं भेजा गया
किसी भी क्रैश रिपोर्ट को बंद कर दिया जाए और वे उपयोगकर्ता
गड़बड़ी का सामना करते हैं, तो उन क्रैश रिपोर्ट से वापस आने वाली समस्या ट्रिगर होगी.
अगर आपको हमारे रिग्रेशन एल्गोरिदम की वजह से, किसी समस्या को फिर से खोलना नहीं है, तो "म्यूट करें" पर क्लिक करें
समस्या को हल करने में मदद करता है.
जिन अपवादों की जानकारी नहीं मिली है उनकी शिकायत गंभीर के तौर पर करना
Crashlytics की मदद से, किसी ऐसे अपवाद को गंभीर के तौर पर रिपोर्ट किया जा सकता है जिसकी पहचान न हुई हो. इसकी शुरुआत
v10.4.0
Unity SDK टूल की ज़रूरी शर्तें पूरी की गई हैं. यहां दिए गए अक्सर पूछे जाने वाले सवालों से, हमें इसके बारे में ज़्यादा जानकारी देने और सबसे सही वजह बताने में मदद मिलती है
के बारे में ज़्यादा जानें.
किसी ऐप्लिकेशन को जिन अपवादों की पहचान नहीं हुई है उन्हें गंभीर के तौर पर क्यों रिपोर्ट करना चाहिए?
जिन अपवादों की जानकारी नहीं मिली है उन्हें गंभीर नुकसान के तौर पर रिपोर्ट करने से, आपको ज़्यादा भरोसेमंद संकेत मिलता है
उन अपवादों के बारे में भी बताएं जिनकी वजह से गेम नहीं चलता – भले ही,
लगातार चलती रहेगी.
ध्यान दें कि अगर किसी नुकसान की भरपाई होती है, तो ऐप्लिकेशन क्रैश होने की समस्या का सामना न करने वाले उपयोगकर्ताओं (सीएफ़यू) का प्रतिशत
घट सकता है, लेकिन सीएफ़यू मेट्रिक
असली उपयोगकर्ताओं का आपके ऐप्लिकेशन को कैसे इस्तेमाल करते हैं.
कौनसे अपवाद लागू होंगे
गंभीर के रूप में रिपोर्ट किया गया?
Crashlytics से, किसी ऐसे अपवाद को गंभीर के तौर पर रिपोर्ट किया जा सकता है जिसकी पहचान न हो सकी हो. इसके लिए, दोनों
नीचे दी गई दो शर्तें पूरी होनी चाहिए:
आपका ऐप्लिकेशन (या शामिल की गई लाइब्रेरी) एक ऐसा अपवाद देता है जिसे खोजा नहीं जा सका. अगर आप
ऐसा अपवाद जिसे बनाया नहीं गया है, लेकिन लागू नहीं किया गया है, उसे अनदेखा नहीं किया जाता.
जिन अपवादों की जानकारी मौजूद नहीं है उन्हें गंभीर नुकसान पहुंचाने वाली रिपोर्ट की सुविधा चालू करने के बाद, अब मेरे पास कई नए मामले हैं. मैं इन अपवादों का अच्छी तरह से कैसे इस्तेमाल करूं?
जब आपको अपने कुछ गंभीर अपवादों की शिकायत गंभीर के तौर पर मिलने लगती है, तो यहां
जिन अपवादों की पहचान नहीं हुई है उन्हें हैंडल करने के कुछ विकल्प:
सबसे सही तरीका यह होगा कि सभी अनुमानित अपवादों को पकड़ना और उन पर कार्रवाई करना तब तक सबसे सही रहेगा, जब
प्रोग्राम को किसी ज्ञात स्थिति में वापस नहीं किया जा सकता.
यह कंट्रोल करने के लिए कि किस तरह के अपवाद देखे और मैनेज किए जाएं, यह तय करने के लिए कि किस कोड का इस्तेमाल किया जाए,
रैप कोड है जो किसी try-catch ब्लॉक में अपवाद जनरेट कर सकता है.
पक्का करें कि catch स्टेटमेंट में दी गई शर्तें उतनी ही छोटी हों
का इस्तेमाल करके खास अपवादों को सही तरीके से मैनेज किया जा सकता है.
Unity या Crashlytics में अपवादों को लॉग करें
मदद करने के लिए, Unity या Crashlytics में अपवाद रिकॉर्ड करने के कई तरीके हैं
समस्या को डीबग करें.
Crashlytics का इस्तेमाल करते समय, आम तौर पर इस्तेमाल होने वाले और सुझाए गए दो तरीके यहां दिए गए हैं
विकल्प:
पहला विकल्प: Unity कंसोल में प्रिंट करें, लेकिन Crashlytics को रिपोर्ट न करें,
डेवलपमेंट या समस्या के हल के दौरान
Debug.Log(exception) का इस्तेमाल करके Unity कंसोल पर प्रिंट करें,
Debug.LogWarning(exception), और Debug.LogError(exception)
अपवाद की सामग्री को Unity कंसोल में प्रिंट करें और
अपवाद को दोबारा लागू करें.
दूसरा विकल्प: Crashlytics पर अपलोड करने से,
इन स्थितियों के लिए Crashlytics का डैशबोर्ड:
अगर किसी अपवाद को बाद में, डीबग करने के लिए लॉग करना सही है, तो
Crashlytics इवेंट का इस्तेमाल करें. इसके बाद, Crashlytics.Log(exception.ToString()) का इस्तेमाल करें.
अगर Crashlytics को किसी अपवाद की शिकायत अब भी की जानी चाहिए, तो
पता लगाया और मैनेज किया जा रहा है, तो Crashlytics.LogException(exception) का इस्तेमाल करें
ताकि इसे गैर-घातक इवेंट के रूप में लॉग किया जा सके.
हालांकि, अगर आपको Unity Cloud को किसी नुकसान पहुंचाने वाले इवेंट की शिकायत मैन्युअल तरीके से करनी है, तो
गड़बड़ी की जानकारी, तो Debug.LogException का इस्तेमाल किया जा सकता है. यह विकल्प अपवाद को प्रिंट करता है
को एक साथ Unity कंसोल में एक्सपोर्ट करता है, जैसे कि विकल्प 1, लेकिन यह अपवाद भी देता है
(भले ही, उसे अभी तक फेंका या पकड़ा गया हो या नहीं). इससे गड़बड़ी की जानकारी मिलती है
गैर-स्थानीय रूप से. इसका मतलब है कि आस-पास के Debug.LogException(exception)
हालांकि, try-catch ब्लॉक के लिए अब भी कोई अपवाद है.
इसलिए, Debug.LogException को सिर्फ़ तब कॉल करें, जब आपको इनमें से सभी काम करने हों
निम्न:
Unity कंसोल में अपवाद को प्रिंट करने के लिए.
Crashlytics में अपवाद को नुकसान पहुंचाने वाले इवेंट के तौर पर अपलोड करने के लिए.
अपवाद को लागू करने के लिए, उसे नहीं पढ़ा गया अपवाद मानें, और
की रिपोर्ट Unity Cloud Diagnostics में, कब-कब भेजी जाएगी.
ध्यान दें कि अगर आपको Unity कंसोल और में किसी गड़बड़ी वाले अपवाद को प्रिंट करना है, तो
Crashlytics पर एक साधारण इवेंट के तौर पर अपलोड करने के बजाय, यह तरीका अपनाएं:
try
{
methodThatThrowsMyCustomExceptionType();
}
catch(MyCustomExceptionType exception)
{
// Print the exception to the Unity console at the error level.
Debug.LogError(exception);
// Upload the exception to Crashlytics as a non-fatal event.
Crashlytics.LogException(exception); // not Debug.LogException
//
// Code that handles the exception
//
}