क्रैशलिटिक्स डैशबोर्ड में पढ़ने योग्य क्रैश रिपोर्ट प्राप्त करें

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

दुर्भाग्य से, ऐसे कुछ मामले हैं जिनके कारण आपकी स्वचालित dSYM फ़ाइलें अपलोड विफल हो सकती हैं। जब Crashlytics आपके ऐप की dSYM फ़ाइलों का पता नहीं लगा पाता, तो यह मार्गदर्शिका समस्या निवारण के कुछ तरीके प्रदान करती है।

सुनिश्चित करें कि Xcode स्वचालित रूप से dSYMs को संसाधित कर सकता है और फ़ाइलें अपलोड कर सकता है

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

सुनिश्चित करें कि क्रैशलाइटिक्स रन स्क्रिप्ट के लिए आपका कॉन्फ़िगरेशन Xcode 15 के साथ शुरू हुई नई आवश्यकताओं के साथ अद्यतित है। यदि आपका कॉन्फ़िगरेशन अद्यतित नहीं है, तो आपको निम्न त्रुटि मिल सकती है:
error: Info.plist Error Unable to process Info.plist at path ...

विशेष रूप से, Xcode 15 और बाद के संस्करण के लिए आवश्यक है कि आप फ़ाइल स्थानों का अधिक संपूर्ण सेट प्रदान करें। आपकी क्रैशलिटिक्स रन स्क्रिप्ट ( 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 dSYMs का उत्पादन कर रहा है

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

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

  2. अपना मुख्य निर्माण लक्ष्य चुनें.

  3. लक्ष्य का बिल्ड सेटिंग टैब खोलें और फिर सभी पर क्लिक करें।

  4. debug information format खोजें।

  5. अपने सभी बिल्ड प्रकारों के लिए dSYM फ़ाइल के साथ डीबग सूचना प्रारूप को DWARF पर सेट करें।

  6. अपने ऐप का पुनर्निर्माण करें.

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

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

अपनी मशीन पर अपने सभी dSYM के UUID को प्रदर्शित करने और लापता 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. किसी संग्रह को फ़ाइंडर में देखने के लिए उस पर कंट्रोल-क्लिक करें। इसे फिर से कंट्रोल-क्लिक करें, और फिर पैकेज सामग्री दिखाएँ पर क्लिक करें।

  3. .xcarchive के भीतर एक dSYMs निर्देशिका है जिसमें Xcode की संग्रह प्रक्रिया के भाग के रूप में उत्पन्न dSYMs शामिल हैं।

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

क्रैशलिटिक्स आपकी dSYMs फ़ाइलों को स्वचालित रूप से या मैन्युअल रूप से अपलोड करने के कई तरीकों का समर्थन करता है।

(अनुशंसित) स्वचालित रूप से आपके dSYM को संसाधित करें और फ़ाइलें अपलोड करें

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

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

यदि स्वचालित अपलोड विफल हो रहे हैं, तो आप निम्न विकल्पों में से किसी एक का उपयोग करके अपनी dSYM फ़ाइलें मैन्युअल रूप से अपलोड कर सकते हैं।

  • विकल्प 1 : अपनी dSYM फ़ाइलों वाली ज़िप फ़ाइल अपलोड करने के लिए कंसोल-आधारित "ड्रैग एंड ड्रॉप" विकल्प का उपयोग करें (फ़ायरबेस कंसोल > क्रैशलिटिक्स > dSYMs टैब पर जाएँ)।

  • विकल्प 2 : अपनी dSYM फ़ाइलों को मैन्युअल रूप से अपलोड करने के लिए 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 चलाएँ।