Catch up on everthing we announced at this year's Firebase Summit. Learn more

अपनी Firebase Crashlytics क्रैश रिपोर्ट कस्टमाइज़ करें

यह मार्गदर्शिका बताती है कि Firebase Crashlytics SDK का उपयोग करके अपनी क्रैश रिपोर्ट को कैसे कस्टमाइज़ किया जाए। डिफ़ॉल्ट रूप से, Crashlytics स्वचालित रूप से क्रैश रिपोर्ट सभी अपने ऐप्लिकेशन के उपयोगकर्ताओं (आप स्वत: क्रैश रिपोर्टिंग बंद कर देते हैं और कर सकते हैं के लिए एकत्र करता है रिपोर्टिंग में ऑप्ट सक्षम बजाय अपने उपयोगकर्ताओं के लिए)। : Crashlytics बॉक्स से बाहर चार प्रवेश तंत्र प्रदान करता है कस्टम कुंजी , कस्टम लॉग , उपयोगकर्ता पहचानकर्ता , और पकड़ा अपवाद

कस्टम कुंजियाँ जोड़ें

कस्टम कुंजियाँ क्रैश होने तक आपके ऐप की विशिष्ट स्थिति प्राप्त करने में आपकी सहायता करती हैं। आप अपनी क्रैश रिपोर्ट के साथ मनमानी कुंजी/मान युग्म संबद्ध कर सकते हैं, फिर Firebase कंसोल में क्रैश रिपोर्ट खोजने और फ़िल्टर करने के लिए कस्टम कुंजियों का उपयोग कर सकते हैं।

  • में Crashlytics डैशबोर्ड , आप मुद्दों है कि एक कस्टम कुंजी के मिलान के लिए खोज सकते हैं।

  • आप कंसोल में एक विशिष्ट समस्या की समीक्षा कर रहे हैं, तो आप प्रत्येक घटना (कुंजी उपटैब) और यहां तक कि कस्टम कुंजी द्वारा घटनाओं को फिल्टर (पेज के शीर्ष पर फ़िल्टर मेनू) के लिए जुड़े कस्टम कुंजी देख सकते हैं।

का प्रयोग करें setCustomKey सेट कुंजी / मान जोड़े के लिए उदाहरण विधि। ध्यान दें कि setCustomKey के लिए ओवरलोड हो गया है value पैरामीटर किसी भी आदिम या स्वीकार करने के लिए String तर्क। यहां कुछ उदाहरण दिए गए हैं:

जावा

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 */);

कोटलिन + केटीएक्स

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
}

आप कुंजी को कॉल करके और इसे किसी भिन्न मान पर सेट करके किसी मौजूदा कुंजी के मान को संशोधित भी कर सकते हैं। उदाहरण के लिए:

जावा

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("current_level", 3);
crashlytics.setCustomKey("last_UI_action", "logged_in");

कोटलिन + केटीएक्स

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("current_level", 3)
    key("last_UI_action", "logged_in")
}

का एक उदाहरण पारित करके थोक में कुंजी / मान जोड़े जोड़े CustomKeysAndValues को setCustomKeys उदाहरण विधि:

जावा

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 के लिए, मौजूदा कार्यक्षमता का उपयोग करने से आसान है 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 साथियों के Crashlytics पृष्ठ में अपने क्रैश डेटा और उन्हें प्रदर्शित करता है के साथ लॉग Firebase कंसोल , लॉग्स टैब के अंतर्गत।

का प्रयोग करें log मदद सटीक मुद्दों के लिए। उदाहरण के लिए:

जावा

FirebaseCrashlytics.getInstance().log("message");

कोटलिन + केटीएक्स

Firebase.crashlytics.log("message")

उपयोगकर्ता पहचानकर्ता सेट करें

किसी समस्या का निदान करने के लिए, यह जानना अक्सर सहायक होता है कि आपके किस उपयोगकर्ता ने किसी क्रैश का अनुभव किया है। Crashlytics में आपकी क्रैश रिपोर्ट में अनाम रूप से उपयोगकर्ताओं की पहचान करने का एक तरीका शामिल है।

अपनी रिपोर्ट में उपयोगकर्ता आईडी जोड़ने के लिए, प्रत्येक उपयोगकर्ता को एक आईडी नंबर, टोकन या हैश मान के रूप में एक विशिष्ट पहचानकर्ता निर्दिष्ट करें:

जावा

FirebaseCrashlytics.getInstance().setUserId("user123456789");

कोटलिन + केटीएक्स

Firebase.crashlytics.setUserId("user123456789")

यदि आपको किसी उपयोगकर्ता पहचानकर्ता को सेट करने के बाद उसे साफ़ करने की आवश्यकता है, तो मान को रिक्त स्ट्रिंग पर रीसेट करें। उपयोगकर्ता पहचानकर्ता को साफ़ करने से मौजूदा Crashlytics रिकॉर्ड नहीं हटते। यदि आप एक यूजर आईडी, के साथ जुड़े रिकॉर्ड को नष्ट करने की जरूरत है संपर्क Firebase समर्थन

(एंड्रॉयड NDK केवल) NDK क्रैश रिपोर्ट के लिए मेटाडाटा जोड़ें

आप वैकल्पिक रूप से शामिल कर सकते हैं crashlytics.h जैसे NDK क्रैश रिपोर्ट, करने के लिए मेटाडेटा जोड़ने का ++ कोड अपने सी में शीर्ष लेख कस्टम कुंजी , कस्टम लॉग , उपयोगकर्ता पहचानकर्ता । इन सभी विकल्पों का वर्णन ऊपर इस पृष्ठ पर किया गया है।

crashlytics.h एक हैडर-केवल सी ++ में पुस्तकालय के रूप में उपलब्ध है Firebase Android SDK GitHub भंडार

NDK C++ API का उपयोग करने के निर्देशों के लिए हेडर फ़ाइल में टिप्पणियाँ पढ़ें।

गैर-घातक अपवादों की रिपोर्ट करें

आपके ऐप के क्रैश होने की स्वचालित रूप से रिपोर्ट करने के अलावा, Crashlytics आपको गैर-घातक अपवादों को रिकॉर्ड करने देता है और अगली बार आपका ऐप लॉन्च होने पर उन्हें आपको भेजता है।

का प्रयोग करें recordException को अपने ऐप्लिकेशन के में गैर घातक अपवाद रिकॉर्ड करने के लिए विधि catch ब्लॉक। उदाहरण के लिए:

जावा

try {
    methodThatThrows();
} catch (Exception e) {
    FirebaseCrashlytics.getInstance().recordException(e);
    // handle your exception here
}

कोटलिन + केटीएक्स

try {
    methodThatThrows()
} catch (e: Exception) {
    Firebase.crashlytics.recordException(e)
    // handle your exception here
}

सभी रिकॉर्ड किए गए अपवाद फायरबेस कंसोल में गैर-घातक मुद्दों के रूप में दिखाई देते हैं। समस्या सारांश में सभी राज्य की जानकारी होती है जो आपको सामान्य रूप से क्रैश से प्राप्त होती है, साथ ही एंड्रॉइड संस्करण और हार्डवेयर डिवाइस द्वारा ब्रेकडाउन के साथ।

Crashlytics आपके ऐप पर प्रदर्शन प्रभाव को कम करने के लिए एक समर्पित बैकग्राउंड थ्रेड पर अपवादों को प्रोसेस करता है। आपके उपयोगकर्ताओं के नेटवर्क ट्रैफ़िक को कम करने के लिए, Crashlytics बैच ने अपवादों को एक साथ लॉग किया और अगली बार ऐप लॉन्च होने पर उन्हें भेज दिया।

ऑप्ट-इन रिपोर्टिंग सक्षम करें

डिफ़ॉल्ट रूप से, Crashlytics स्वचालित रूप से आपके सभी ऐप के उपयोगकर्ताओं के लिए क्रैश रिपोर्ट एकत्र करता है। उपयोगकर्ताओं को उनके द्वारा भेजे जाने वाले डेटा पर अधिक नियंत्रण देने के लिए, आप स्वचालित रिपोर्टिंग को अक्षम करके और केवल Crashlytics को डेटा भेजकर ऑप्ट-इन रिपोर्टिंग सक्षम कर सकते हैं, जब आप अपने कोड में चुनते हैं:

  1. में application अपने के ब्लॉक AndroidManifest.xml फ़ाइल, एक जोड़ने meta-data स्वत: संग्रह बंद करने के लिए टैग:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    
  2. Crashlytics डेटा संग्रह ओवरराइड को रनटाइम पर कॉल करके चुनिंदा उपयोगकर्ताओं के लिए संग्रह सक्षम करें। ओवरराइड मान आपके ऐप्लिकेशन के सभी लॉन्च पर बना रहता है, इसलिए Crashlytics स्वचालित रूप से रिपोर्ट एकत्र कर सकता है। स्वत: क्रैश रिपोर्टिंग से बाहर निकलना करने के लिए, पारित false ओवरराइड मान के रूप में। करने के लिए सेट करते हैं false , नया मान एप्लिकेशन के अगले रन तक लागू नहीं होता।

    जावा

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    कोटलिन + केटीएक्स

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

क्रैश इनसाइट डेटा प्रबंधित करें

Crash Insights आपके अनाम स्टैक ट्रेस की तुलना अन्य Firebase ऐप्स के ट्रैस से करके और आपको यह बताकर समस्याओं को हल करने में मदद करता है कि क्या आपकी समस्या किसी बड़े चलन का हिस्सा है। कई मुद्दों के लिए, क्रैश इनसाइट्स आपको क्रैश को डीबग करने में मदद करने के लिए संसाधन भी प्रदान करता है।

क्रैश इनसाइट्स सामान्य स्थिरता रुझानों की पहचान करने के लिए एकत्रित क्रैश डेटा का उपयोग करता है। आप अपने ऐप के डेटा साझा नहीं करना चाहते हैं तो आप अपनी Crashlytics मुद्दा सूची के शीर्ष पर क्रैश इनसाइट्स मेनू से क्रैश इनसाइट्स के बाहर निकल सकते हैं Firebase कंसोल