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

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


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

  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-क्लिक करें. इस पर फिर से Control-क्लिक करें. इसके बाद, Show Package Contents पर क्लिक करें.

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

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

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

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

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

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

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

  • पहला विकल्प: Firebase कंसोल में "खींचें और छोड़ें" इंटरफ़ेस का इस्तेमाल करके, dSYM फ़ाइलें शामिल करने वाली zip फ़ाइल अपलोड करें. इसके लिए, DevOps और यूज़र ऐक्टिविटी > 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 पैरामीटर के साथ चलाएं.