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

Crashlytics के डैशबोर्ड में जाकर, किसी समस्या पर क्लिक करके पूरी जानकारी देखी जा सकती है इवेंट रिपोर्ट. बेहतर तरीके से समझने के लिए, उन रिपोर्ट को पसंद के मुताबिक बनाया जा सकता है आपके ऐप्लिकेशन में क्या हो रहा है और इवेंट से जुड़ी स्थितियों की जानकारी Crashlytics का इस्तेमाल करें.

  • अगर आपका ऐप्लिकेशन Google Analytics के लिए Firebase SDK टूल. इन लॉग से आपको यह जानकारी मिलती है कि आपके ऐप्लिकेशन में Crashlytics से इकट्ठा किए गए इवेंट के लिए उपयोगकर्ता की कार्रवाइयां.

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

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

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

  • Crashlytics के डैशबोर्ड में जाकर, समस्याओं को खोजा जा सकता है जो कस्टम कुंजी से मेल खाते हैं.

  • कंसोल में किसी खास समस्या की समीक्षा करते समय, हर इवेंट के लिए जुड़ी हुई कस्टम कुंजियां (कुंजी सबटैब) और यहां तक कि इवेंट को फ़िल्टर भी करें कस्टम कुंजियों के हिसाब से इवेंट (पेज के सबसे ऊपर फ़िल्टर मेन्यू).

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

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("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("current_level", 3)
    key("last_UI_action", "logged_in")
}

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

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

CustomKeysAndValues का इंस्टेंस पास करके, बल्क में कुंजी/वैल्यू पेयर जोड़ें setCustomKeys इंस्टेंस तरीका:

Kotlin+KTX

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)
}

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

कस्टम लॉग मैसेज जोड़ें

ऐप्लिकेशन बंद होने की वजह से होने वाले इवेंट के बारे में ज़्यादा जानकारी देने के लिए, आपके ऐप्लिकेशन में कस्टम Crashlytics का इस्तेमाल करके लॉग इकट्ठा करें. Crashlytics, लॉग को इकट्ठा करने की अनुमति देता है ऐप्लिकेशन क्रैश होने के डेटा के साथ उसे दिखाता है और उन्हें Firebase कंसोल, लॉग टैब में मौजूद होता है.

समस्याओं का पता लगाने के लिए, log का इस्तेमाल करें. उदाहरण के लिए:

Kotlin+KTX

Firebase.crashlytics.log("message")

Java

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

उपयोगकर्ता आइडेंटिफ़ायर सेट करना

किसी समस्या का निदान करने के लिए, यह जानना अक्सर उपयोगी होता है कि आपके किस उपयोगकर्ता को समस्या का सामना करना पड़ा किसी क्रैश को पहले से तय करके. Crashlytics का इस्तेमाल करके, डेवलपर अपनी पहचान छिपाकर, उन उपयोगकर्ताओं की पहचान करते हैं जो क्रैश रिपोर्ट देखी जा सकती हैं.

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

Kotlin+KTX

Firebase.crashlytics.setUserId("user123456789")

Java

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

अगर आपको सेट करने के बाद उपयोगकर्ता आइडेंटिफ़ायर को हटाने की ज़रूरत पड़ती है, तो इस वैल्यू को खाली स्ट्रिंग. उपयोगकर्ता आइडेंटिफ़ायर को मिटाने से मौजूदा कैंपेन नहीं हटता Crashlytics के रिकॉर्ड. अगर आपको किसी उपयोगकर्ता से जुड़े रिकॉर्ड मिटाने हैं आईडी, Firebase सहायता से संपर्क करें.

(सिर्फ़ Android एनडीके के लिए) एनडीके की क्रैश रिपोर्ट में मेटाडेटा जोड़ना

जोड़ने के लिए, C++ कोड में crashlytics.h हेडर को भी शामिल किया जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है एनडीके क्रैश रिपोर्ट का मेटाडेटा, जैसे कि कस्टम कुंजियां, कस्टम लॉग, उपयोगकर्ता आइडेंटिफ़ायर. ये सभी विकल्प यहां दिए गए हैं ऊपर दिया गया है.

crashlytics.h, सिर्फ़ हेडर वाली C++ लाइब्रेरी के तौर पर यहां उपलब्ध है: Firebase Android SDK GitHub डेटा स्टोर करने की जगह.

NDK C++ API इस्तेमाल करने के बारे में निर्देशों के लिए, हेडर फ़ाइल में टिप्पणियां पढ़ें.

मेमोरी के खराब होने की समस्याओं को डीबग करने के लिए, GWP-ASan की रिपोर्ट शामिल करें

Crashlytics की मदद से आप नेटिव मेमोरी की गड़बड़ियों की वजह से होने वाले क्रैश को डीबग करने के लिए नीचे दिए गए काम कर सकते हैं GWP-ASan की रिपोर्ट इकट्ठा करना. मेमोरी से जुड़ी ये गड़बड़ियां, आपके ऐप्लिकेशन की मेमोरी में खराबी है, जो ऐप्लिकेशन की सुरक्षा की मुख्य वजह है जोखिम की आशंकाएं.

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

  • नई "GWP-ASan रिपोर्ट" का इस्तेमाल भी किया जा सकता है तुरंत देखने के लिए सिग्नल और फ़िल्टर सभी समस्याएं हैं.

आपको GWP-ASan की मेमोरी रिपोर्ट मिल सकती है, अगर GWP-ASan को साफ़ तौर पर चालू करें और NDK v18.3.6+ (Firebase BoM) के लिए Crashlytics SDK टूल का इस्तेमाल करें v31.3.0+). GWP-ASan के सेटअप की जांच करने के लिए, Android दस्तावेज़ में नेटिव कोड का उदाहरण दिया है.

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

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

अपने ऐप्लिकेशन में नुकसान न पहुंचाने वाले अपवादों को रिकॉर्ड करने के लिए, recordException तरीके का इस्तेमाल करें catch ब्लॉक. उदाहरण के लिए:

Kotlin+KTX

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

Java

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

रिकॉर्ड किए गए सभी अपवाद, Firebase कंसोल में सामान्य समस्याओं के तौर पर दिखते हैं. समस्या की खास जानकारी में राज्य की वह सारी जानकारी होती है जहां से आपको आम तौर पर जानकारी मिलती है साथ ही, Android वर्शन और हार्डवेयर डिवाइस के हिसाब से ब्रेकडाउन भी दिखेंगे.

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

ब्रेडक्रंब लॉग पाएं

ब्रेडक्रंब लॉग से, आपको किसी उपयोगकर्ता के इंटरैक्शन को बेहतर तरीके से समझने में मदद मिलती है आपके ऐप्लिकेशन की वजह से कोई क्रैश, नुकसान न पहुंचाने वाला या ANR इवेंट हुआ. इन लॉग से ये काम किए जा सकते हैं और डीबग करने में मदद करें.

ब्रेडक्रंब लॉग Google Analytics की मदद से काम करते हैं. इसलिए, ब्रेडक्रंब लॉग पाने के लिए, यह करने की ज़रूरत है Google Analytics चालू करें को ट्रैक करने का सुझाव दिया जाता है. Google Analytics के लिए Firebase SDK टूल जोड़ना आपके ऐप्लिकेशन को मिलता है. ये शर्तें पूरी होने के बाद, ब्रेडक्रंब के लॉग अपने-आप बन जाते हैं इसे लॉग टैब में, इवेंट के डेटा के साथ तब शामिल किया जाता है, जब आपने जानकारी देखी हो समस्या हुई है.

Analytics SDK टूल screen_view इवेंट को अपने-आप लॉग करता है जिसकी मदद से ब्रेडक्रंब लॉग उन स्क्रीन की सूची दिखाएगा जो क्रैश, नुकसान न पहुंचाने वाली या ANR वाली गड़बड़ी. screen_view ब्रेडक्रंब लॉग में, यह firebase_screen_class पैरामीटर.

ब्रेडक्रंब लॉग भी किसी भी ऐसे कस्टम इवेंट जिन्हें आपने उपयोगकर्ता की प्रोफ़ाइल में मैन्युअल तरीके से लॉग किया है सेशन. इसमें इवेंट का पैरामीटर डेटा भी शामिल है. इस डेटा से, एक सीरीज़ को उपयोगकर्ता की ऐसी कार्रवाइयों की संख्या जिनसे क्रैश, नुकसान न पहुंचाने वाली या ANR वाली गड़बड़ी होती है.

ध्यान दें कि आप Google Analytics डेटा के कलेक्शन और उसके इस्तेमाल को कंट्रोल करने के बारे में, इसमें वह डेटा शामिल होता है जो ब्रेडक्रंब के लॉग में अपने-आप जानकारी भरता है.

ऑप्ट-इन रिपोर्टिंग चालू करें

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

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

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

    Kotlin+KTX

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

क्रैश की अहम जानकारी का डेटा मैनेज करें

क्रैश इनसाइट की सुविधा की मदद से, पहचान छिपाने वाले आपके स्टैक की तुलना की जा सकती है. इससे समस्याएं हल करने में मदद मिलती है ट्रेस करता है और बताता है कि क्या आपकी समस्या का हिस्सा है. कई समस्याओं के लिए, क्रैश इनसाइट, संसाधनों को ताकि आपको क्रैश को डीबग करने में मदद मिल सके.

क्रैश इनसाइट में, ऐप्लिकेशन क्रैश होने से जुड़े इकट्ठा किए गए डेटा का इस्तेमाल किया जाता है, ताकि स्थिरता से जुड़े सामान्य रुझानों का पता लगाया जा सके. अगर आपको अपने ऐप्लिकेशन का डेटा शेयर नहीं करना है, तो क्रैश इनसाइट की सुविधा से ऑप्ट-आउट किया जा सकता है Crashlytics से जुड़ी समस्या की सूची के सबसे ऊपर मौजूद क्रैश की अहम जानकारी मेन्यू से Firebase कंसोल में जाकर.