Crashlytics डैशबोर्ड (Apple प्लैटफ़ॉर्म) में, आसानी से पढ़ी जा सकने वाली क्रैश रिपोर्ट पाना

प्लैटफ़ॉर्म चुनें: iOS+ Android Flutter Unity


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

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

पक्का करें कि Xcode, डीएसवाईएम को अपने-आप प्रोसेस कर सके और फ़ाइलें अपलोड कर सके

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

पक्का करें कि 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, डीएसवाईएम जनरेट कर रहा है या नहीं

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

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

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

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

  4. debug information format खोजें.

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

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

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

लोकल मशीन पर अपने डीएसवाईएम ढूंढना

अपनी मशीन पर, डीएसवाईएम के सभी यूयूआईडी दिखाने के लिए यह कमांड चलाएं और गायब हुए डीएसवाईएम को खोजें:

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

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

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

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

  3. .xcarchive में, डीएसवाईएम डायरेक्ट्री होती है. इसमें, Xcode की संग्रह प्रोसेस के तहत जनरेट किए गए डीएसवाईएम होते हैं.

अपने डीएसवाईएम अपलोड करना

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

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

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

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

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

  • पहला विकल्प: डीएसवाईएम वाली फ़ाइलों वाली zip फ़ाइल अपलोड करने के लिए, Firebase कंसोल में "खींचें और छोड़ें" इंटरफ़ेस का इस्तेमाल करें. इसके लिए, DevOps और उपयोगकर्ता जुड़ाव > Crashlytics डैशबोर्ड >डीएसवाईएम टैब पर जाएं.

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

    • पहला विकल्प: अपने बिल्ड प्रोसेस में यह लाइन शामिल करें:

      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

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