Crashlytics डैशबोर्ड में, आसानी से पढ़ने लायक क्रैश रिपोर्ट पाएं

डिफ़ॉल्ट रूप से, Firebase Crashlytics, आपकी डीबग सिंबल (dSYM) फ़ाइलों को अपने-आप प्रोसेस करता है, ताकि आपको डिकोड की गई और आसानी से पढ़ी जा सकने वाली क्रैश रिपोर्ट मिल सकें. आम तौर पर, इस व्यवहार को अपने ऐप्लिकेशन में Crashlytics के शुरुआती सेट अप के दौरान कॉन्फ़िगर किया जाता है. खास तौर पर रन स्क्रिप्ट जोड़कर, जो आपके ऐप्लिकेशन के बिल्ड चरण के दौरान अपने-आप dSYM फ़ाइलें अपलोड करती है.

माफ़ करें, कुछ मामलों में ऐसा हो सकता है कि अपने-आप dSYM फ़ाइलों का अपलोड न हो पाए. जब Crashlytics, आपके ऐप्लिकेशन की dSYM फ़ाइलों का पता नहीं लगा पा रहा, तब इस गाइड में समस्या हल करने के कुछ तरीके बताए गए हैं.

पक्का करें कि Xcode, dSYM को अपने-आप प्रोसेस कर सकता है और फ़ाइलें अपलोड कर सकता है

अपने ऐप्लिकेशन में Crashlytics को सेट अप करते समय, आपने dSYM को अपने-आप प्रोसेस करने और फ़ाइलें अपलोड करने के लिए रन स्क्रिप्ट को कॉन्फ़िगर किया.

पक्का करें कि Crashlytics रन स्क्रिप्ट के लिए आपका कॉन्फ़िगरेशन, Xcode 15 से शुरू हुई नई ज़रूरी शर्तों के हिसाब से अप-टू-डेट है. अगर आपका कॉन्फ़िगरेशन अप-टू-डेट नहीं है, तो आपको यह गड़बड़ी दिख सकती है:
error: Info.plist Error Unable to process Info.plist at path ....

खास तौर पर, Xcode 15 और इसके बाद के वर्शन के लिए यह ज़रूरी है कि आप फ़ाइल की जगहों का पूरा सेट दें. Crashlytics की रनिंग स्क्रिप्ट (firebase-ios-sdk/Crashlytics/run) के लिए, पक्का करें कि आपके पास ये सेटअप हों:

  1. चरण बनाएं टैब पर क्लिक करें और फिर स्क्रिप्ट चलाएं सेक्शन को बड़ा करें.

  2. इनपुट फ़ाइलें सेक्शन में, पक्का करें कि आपके पास नीचे दी गई फ़ाइलों की जगहों के पाथ मौजूद हैं:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)

देखें कि Xcode, dSYM बना रहा है या नहीं

अक्सर, dSYM फ़ाइलें गायब हो जाती हैं, क्योंकि Xcode में ऐसी फ़ाइलें नहीं बनतीं. जब कोई अपलोड फ़ेल होता है, तो Crashlytics, Firebase कंसोल में "dSYM मौजूद नहीं है" चेतावनी दिखाता है. अगर आपको यह सूचना मिलती है, तो सबसे पहले जांच लें कि Xcode हर बिल्ड के लिए सही dSYM बना रहा है:

  1. अपने प्रोजेक्ट को Xcode में खोलें और फिर Xcode नेविगेटर में प्रोजेक्ट फ़ाइल को चुनें.

  2. बिल्ड टारगेट चुनें.

  3. टारगेट का बिल्ड सेटिंग टैब खोलें. इसके बाद, सभी पर क्लिक करें.

  4. debug information format खोजें.

  5. अपने सभी बिल्ड टाइप के लिए, Debug Information Format को dSYM फ़ाइल के साथ DWARF पर सेट करें.

  6. अपना ऐप्लिकेशन फिर से बनाएं.

अब आपकी क्रैश रिपोर्ट Crashlytics डैशबोर्ड में दिखेंगी. अगर समस्या बनी रहती है या दूसरी गड़बड़ियां दिखती हैं, तो अपने dSYM का पता लगाएं और उन्हें मैन्युअल तरीके से Crashlytics पर अपलोड करें.

किसी स्थानीय मशीन पर अपने dSYMs का पता लगाएं

अपनी मशीन पर अपने सभी dSYM के यूयूआईडी दिखाने के लिए यह निर्देश चलाएं और जो dSYM नहीं है उसे खोजें:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

dSYM मिलने के बाद, उसे Crashlytics पर मैन्युअल तरीके से अपलोड करें. अगर mdfind निर्देश से कोई नतीजा नहीं मिलता, तो Products डायरेक्ट्री में आपका .app देखा जा सकता है (डिफ़ॉल्ट रूप से, Products डायरेक्ट्री Derived Data में होती है). अगर आपके ऐप्लिकेशन को प्रोडक्शन के लिए रिलीज़ किया जाता है, तो डिस्क पर .xcarchive डायरेक्ट्री में उसका dSYM भी देखा जा सकता है:

  1. Xcode में, आयोजक विंडो खोलें और फिर सूची में से अपना ऐप्लिकेशन चुनें. Xcode आपके प्रोजेक्ट के संग्रहों की सूची दिखाता है.

  2. किसी संग्रह को Finder में देखने के लिए, उस पर कंट्रोल-क्लिक करें. उस पर फिर से कंट्रोल क्लिक करें और इसके बाद, पैकेज का कॉन्टेंट दिखाएं पर क्लिक करें.

  3. .xcarchive में एक dSYMs डायरेक्ट्री है, जिसमें Xcode की संग्रहित करने की प्रोसेस के हिस्से के तौर पर जनरेट किए गए dSYMs शामिल हैं.

अपने dSYM अपलोड करें

Crashlytics, आपकी dSYM फ़ाइलों को अपने-आप या मैन्युअल तरीके से अपलोड करने के कई तरीकों के साथ काम करता है.

(सुझाया गया) अपने dSYM को अपने-आप प्रोसेस करें और फ़ाइलें अपलोड करें

शुरुआत में Crashlytics सेट अप करते समय, शायद आपने ऐप्लिकेशन के लिए अपने-आप अपलोड होने की इस सुविधा को कॉन्फ़िगर किया हो. हालांकि, अगर अपने-आप अपलोड होने की सुविधा काम नहीं कर रही है, तो देखें कि आपका कॉन्फ़िगरेशन सही है या नहीं.

अपनी dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड करें

अगर अपने-आप अपलोड होने की सुविधा काम नहीं कर रही है, तो इनमें से किसी एक विकल्प का इस्तेमाल करके, अपनी dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड करें.

  • पहला विकल्प: कंसोल पर आधारित "खींचें और छोड़ें" विकल्प का इस्तेमाल करके ऐसी ZIP फ़ाइल अपलोड करें जिसमें आपकी dSYM फ़ाइलें हों. Firebase कंसोल > Crashlytics > dSYMs टैब पर जाएं.

  • दूसरा विकल्प: upload-symbols स्क्रिप्ट का इस्तेमाल करें. इसे बिल्ड प्रोसेस में कहीं से भी कॉल करके, अपनी dSYM फ़ाइलों को मैन्युअल तरीके से अपलोड किया जा सकता है. upload-symbols स्क्रिप्ट को चलाने के लिए, इनमें से किसी एक विकल्प का इस्तेमाल करें:

    • विकल्प A: बिल्ड प्रोसेस में नीचे दी गई लाइन शामिल करें:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • विकल्प B: स्क्रिप्ट को सीधे अपने टर्मिनल से चलाएं:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    इस स्क्रिप्ट के इस्तेमाल के नोट और अन्य निर्देशों के लिए, --help पैरामीटर के साथ upload-symbols चलाएं.