यह मार्गदर्शिका बताती है कि Firebase Crashlytics SDK का उपयोग करके अपनी क्रैश रिपोर्ट को कैसे कस्टमाइज़ किया जाए। डिफ़ॉल्ट रूप से, Crashlytics स्वचालित रूप से आपके ऐप के सभी उपयोगकर्ताओं के लिए क्रैश रिपोर्ट एकत्र करता है (आप स्वचालित क्रैश रिपोर्टिंग को बंद कर सकते हैं और इसके बजाय अपने उपयोगकर्ताओं के लिए ऑप्ट-इन रिपोर्टिंग सक्षम कर सकते हैं)। Crashlytics बॉक्स से बाहर चार लॉगिंग तंत्र प्रदान करता है: कस्टम कुंजियाँ , कस्टम लॉग , उपयोगकर्ता पहचानकर्ता , और पकड़े गए अपवाद ।
कस्टम कुंजियाँ जोड़ें
कस्टम कुंजियाँ क्रैश होने तक आपके ऐप की विशिष्ट स्थिति प्राप्त करने में आपकी सहायता करती हैं। आप अपनी क्रैश रिपोर्ट के साथ मनमानी कुंजी/मान युग्म संबद्ध कर सकते हैं, फिर Firebase कंसोल में क्रैश रिपोर्ट खोजने और फ़िल्टर करने के लिए कस्टम कुंजियों का उपयोग कर सकते हैं।
Crashlytics डैशबोर्ड में, आप कस्टम कुंजी से मेल खाने वाली समस्याओं की खोज कर सकते हैं।
जब आप कंसोल में किसी विशिष्ट समस्या की समीक्षा कर रहे होते हैं, तो आप प्रत्येक ईवेंट के लिए संबद्ध कस्टम कुंजियाँ देख सकते हैं ( कुंजियाँ उपटैब) और यहाँ तक कि कस्टम कुंजियों द्वारा ईवेंट को फ़िल्टर भी कर सकते हैं (पृष्ठ के शीर्ष पर फ़िल्टर मेनू)।
कुंजी/मान जोड़े सेट करने के लिए setCustomKey
इंस्टेंस विधि का उपयोग करें। ध्यान दें कि किसी भी आदिम या String
तर्क को स्वीकार करने के लिए value
पैरामीटर के लिए setCustomKey
अतिभारित है। यहां कुछ उदाहरण दिए गए हैं:
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("my_string_key", "foo" /* string value */); crashlytics.setCustomKey("my_bool_key", true /* boolean value */); crashlytics.setCustomKey("my_double_key", 1.0 /* double value */); crashlytics.setCustomKey("my_float_key", 1.0f /* float value */); crashlytics.setCustomKey("my_int_key", 1 /* int value */);
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("my_string_key", "foo") // String value key("my_bool_key", true) // boolean value key("my_double_key", 1.0) // double value key("my_float_key", 1.0f) // float value key("my_int_key", 1) // int value }
आप कुंजी को कॉल करके और किसी भिन्न मान पर सेट करके किसी मौजूदा कुंजी के मान को संशोधित भी कर सकते हैं। उदाहरण के लिए:
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
Kotlin+KTX
val crashlytics = Firebase.crashlytics crashlytics.setCustomKeys { key("current_level", 3) key("last_UI_action", "logged_in") }
setCustomKeys
CustomKeysAndValues
विधि में पास करके थोक में कुंजी/मान जोड़े जोड़ें:
Java
CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder() .putString("string key", "string value") .putString("string key 2", "string value 2") .putBoolean("boolean key", True) .putBoolean("boolean key 2", False) .putFloat("float key", 1.01) .putFloat("float key 2", 2.02) .build(); FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);
Kotlin+KTX
कोटलिन के लिए, मौजूदा कार्यक्षमता CustomKeysAndValues
बिल्डर का उपयोग करने की तुलना में सरल है।
crashlytics.setCustomKeys { key("str_key", "hello") key("bool_key", true) key("int_key", 1) key("long_key", 1L) key("float_key", 1.0f) key("double_key", 1.0) }
कस्टम लॉग संदेश जोड़ें
क्रैश होने वाली घटनाओं के लिए स्वयं को अधिक संदर्भ देने के लिए, आप अपने ऐप में कस्टम क्रैशलाईटिक्स लॉग जोड़ सकते हैं। Crashlytics लॉग को आपके क्रैश डेटा से जोड़ता है और उन्हें Firebase कंसोल के Crashlytics पृष्ठ में, लॉग्स टैब के अंतर्गत प्रदर्शित करता है।
समस्याओं को इंगित करने में सहायता के लिए log
का उपयोग करें। उदाहरण के लिए:
Java
FirebaseCrashlytics.getInstance().log("message");
Kotlin+KTX
Firebase.crashlytics.log("message")
उपयोगकर्ता पहचानकर्ता सेट करें
किसी समस्या का निदान करने के लिए, यह जानना अक्सर सहायक होता है कि आपके किस उपयोगकर्ता ने किसी क्रैश का अनुभव किया है। Crashlytics में आपकी क्रैश रिपोर्ट में गुमनाम रूप से उपयोगकर्ताओं की पहचान करने का एक तरीका शामिल है।
अपनी रिपोर्ट में उपयोगकर्ता आईडी जोड़ने के लिए, प्रत्येक उपयोगकर्ता को एक आईडी नंबर, टोकन या हैश मान के रूप में एक विशिष्ट पहचानकर्ता निर्दिष्ट करें:
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
यदि आपको किसी उपयोगकर्ता पहचानकर्ता को सेट करने के बाद उसे साफ़ करने की आवश्यकता है, तो मान को रिक्त स्ट्रिंग पर रीसेट करें। उपयोगकर्ता पहचानकर्ता को साफ़ करने से मौजूदा Crashlytics रिकॉर्ड नहीं हटते। यदि आप किसी उपयोगकर्ता आईडी से जुड़े रिकॉर्ड को हटाना चाहते हैं, तो फायरबेस समर्थन से संपर्क करें ।
(केवल Android NDK) NDK क्रैश रिपोर्ट में मेटाडेटा जोड़ें
एनडीके क्रैश रिपोर्ट में मेटाडेटा जोड़ने के लिए आप वैकल्पिक रूप से अपने सी ++ कोड में crashlytics.h
हेडर शामिल कर सकते हैं, जैसे कस्टम कुंजी , कस्टम लॉग , उपयोगकर्ता पहचानकर्ता । इन सभी विकल्पों का वर्णन ऊपर इस पृष्ठ पर किया गया है।
crashlytics.h
एंड्रॉइड एसडीके गिटहब रिपोजिटरी में हेडर-ओनली सी ++ लाइब्रेरी के रूप में उपलब्ध है।
NDK C++ API का उपयोग करने के निर्देशों के लिए हेडर फ़ाइल में टिप्पणियाँ पढ़ें।
गैर-घातक अपवादों की रिपोर्ट करें
आपके ऐप के क्रैश होने की स्वचालित रूप से रिपोर्ट करने के अलावा, Crashlytics आपको गैर-घातक अपवादों को रिकॉर्ड करने देता है और अगली बार आपका ऐप लॉन्च होने पर उन्हें आपको भेजता है।
अपने ऐप के catch
ब्लॉक में गैर-घातक अपवादों को रिकॉर्ड करने के लिए रिकॉर्ड recordException
विधि का उपयोग करें। उदाहरण के लिए:
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
सभी रिकॉर्ड किए गए अपवाद Firebase कंसोल में गैर-घातक समस्याओं के रूप में दिखाई देते हैं। समस्या सारांश में सभी राज्य की जानकारी होती है जो आपको सामान्य रूप से क्रैश से प्राप्त होती है, साथ ही Android संस्करण और हार्डवेयर डिवाइस द्वारा ब्रेकडाउन के साथ।
Crashlytics आपके ऐप पर प्रदर्शन प्रभाव को कम करने के लिए एक समर्पित बैकग्राउंड थ्रेड पर अपवादों को प्रोसेस करता है। आपके उपयोगकर्ताओं के नेटवर्क ट्रैफ़िक को कम करने के लिए, Crashlytics बैच ने अपवादों को एक साथ लॉग किया और अगली बार ऐप लॉन्च होने पर उन्हें भेज दिया।
ऑप्ट-इन रिपोर्टिंग सक्षम करें
डिफ़ॉल्ट रूप से, Crashlytics आपके ऐप के सभी उपयोगकर्ताओं के लिए स्वचालित रूप से क्रैश रिपोर्ट एकत्र करता है। उपयोगकर्ताओं को उनके द्वारा भेजे जाने वाले डेटा पर अधिक नियंत्रण देने के लिए, आप स्वचालित रिपोर्टिंग को अक्षम करके और केवल Crashlytics को डेटा भेजकर ऑप्ट-इन रिपोर्टिंग सक्षम कर सकते हैं, जब आप अपने कोड में चुनते हैं:
अपनी
AndroidManifest.xml
फ़ाइल केapplication
ब्लॉक में, स्वचालित संग्रह को बंद करने के लिएmeta-data
टैग जोड़ें:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Crashlytics डेटा संग्रह ओवरराइड को रनटाइम पर कॉल करके चुनिंदा उपयोगकर्ताओं के लिए संग्रह सक्षम करें। ओवरराइड मान आपके ऐप्लिकेशन के सभी लॉन्च पर बना रहता है, इसलिए Crashlytics स्वचालित रूप से रिपोर्ट एकत्र कर सकता है। स्वचालित क्रैश रिपोर्टिंग से ऑप्ट आउट करने के लिए,
false
को ओवरराइड मान के रूप में पास करें। जबfalse
पर सेट किया जाता है, तो नया मान ऐप के अगले रन तक लागू नहीं होता है।Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
क्रैश इनसाइट डेटा प्रबंधित करें
Crash Insights आपके अनाम स्टैक ट्रेस की तुलना अन्य Firebase ऐप्स के ट्रैस से करके और आपको यह बताकर समस्याओं को हल करने में मदद करता है कि क्या आपकी समस्या किसी बड़े चलन का हिस्सा है। कई मुद्दों के लिए, क्रैश इनसाइट्स आपको क्रैश को डीबग करने में मदद करने के लिए संसाधन भी प्रदान करता है।
क्रैश इनसाइट्स सामान्य स्थिरता रुझानों की पहचान करने के लिए एकत्रित क्रैश डेटा का उपयोग करता है। यदि आप अपने ऐप का डेटा साझा नहीं करना चाहते हैं, तो आप Firebase कंसोल में अपनी Crashlytics समस्या सूची के शीर्ष पर Crash Insights मेनू से Crash Insights से ऑप्ट-आउट कर सकते हैं।