Crashlytics डैशबोर्ड में जाकर, क्रैश रिपोर्ट आसानी से पढ़ी जा सकती हैं


डिफ़ॉल्ट रूप से, Firebase Crashlytics आपकी डीबग सिंबल (डीएसवाईएम) फ़ाइलों को अपने-आप प्रोसेस करता है, ताकि आपको डिकोड की गई और आसानी से पढ़ी जा सकने वाली क्रैश रिपोर्ट मिल सकें. आम तौर पर, इस व्यवहार को 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)
    अगर आपके प्रोजेक्ट की बिल्ड सेटिंग में ENABLE_USER_SCRIPT_SANDBOXING=YES और ENABLE_DEBUG_DYLIB=YES शामिल हैं, तो इन्हें भी शामिल करें:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

देखें कि Xcode, dSYM फ़ाइलें जनरेट कर रहा है या नहीं

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

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

  2. अपना मुख्य बिल्ड टारगेट चुनें.

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

  4. debug information format खोजें.

  5. अपने सभी बिल्ड टाइप के लिए, डीबग जानकारी का फ़ॉर्मैट को डीएसवाईएम फ़ाइल के साथ DWARF पर सेट करें.

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

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

कंप्यूटर पर अपने dSYM ढूंढना

अपनी मशीन पर अपने सभी 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 में, Organizer विंडो खोलें. इसके बाद, सूची से अपना ऐप्लिकेशन चुनें. Xcode, आपके प्रोजेक्ट के लिए संग्रहों की सूची दिखाता है.

  2. संग्रह को Finder में देखने के लिए, उस पर Control-क्लिक करें. इस पर फिर से कंट्रोल-क्लिक करें. इसके बाद, Show Package Contents पर क्लिक करें.

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

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

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

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

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

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

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

  • पहला विकल्प: कंसोल पर मौजूद "खींचें और छोड़ें" विकल्प का इस्तेमाल करके, dSYM फ़ाइलें शामिल करने वाली zip फ़ाइल अपलोड करें. इसके लिए, 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 \{\}
    • दूसरा विकल्प: स्क्रिप्ट को सीधे अपने टर्मिनल से चलाएं:

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

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