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


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

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

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

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

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

  2. बिल्ड टारगेट चुनें.

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

  4. debug information format खोजें.

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

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

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

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

अपनी मशीन पर सभी dSYMs के 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. Finder में किसी संग्रह को देखने के लिए, उस पर Control-क्लिक करें. उस पर दोबारा क्लिक करें और इसके बाद, पैकेज का कॉन्टेंट दिखाएं पर क्लिक करें.

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

dSYMs अपलोड करना

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

(इसका सुझाव दिया जाता है) अपने dSYMs को अपने-आप प्रोसेस करें और फ़ाइलें अपलोड करें

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

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

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

  • पहला विकल्प: कंसोल पर आधारित, "खींचें और छोड़ें" सुविधा का इस्तेमाल करें ज़िप अपलोड करने का विकल्प वह फ़ाइल जिसमें आपकी dSYM फ़ाइलें हैं (यहां जाएं 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

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