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

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

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

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

अपने ऐप्लिकेशन में Crashlytics को सेट अप करने के दौरान, आपने DSYMs को अपने-आप प्रोसेस करने और फ़ाइलें अपलोड करने के लिए, रन स्क्रिप्ट को कॉन्फ़िगर करने का विकल्प चुना है.

पक्का करें कि 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 कंसोल में "डीएसवाईएम मौजूद नहीं है" चेतावनी दिखाता है. अगर आपको यह चेतावनी मिलती है, तो पहले देख लें कि Xcode हर बिल्ड के लिए सही dSYM बना रहा है या नहीं:

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

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

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

  4. debug information format खोजें.

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

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

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

लोकल मशीन पर अपने dSYMs ढूंढें

अपनी मशीन पर अपने सभी dSYMs यूयूआईडी दिखाने के लिए, नीचे दिया गया कमांड चलाएं और छूटी हुई dSYM फ़ाइल खोजें:

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

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

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

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

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

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

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

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

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

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

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

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

  • दूसरा विकल्प: अपनी 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 चलाएं.