| प्लैटफ़ॉर्म चुनें: | 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) के लिए, पक्का करें कि आपने यह सेटअप किया हो:
Build Phases टैब पर क्लिक करें. इसके बाद, Run Script सेक्शन को बड़ा करें.
Input Files सेक्शन में, पक्का करें कि आपके पास इन फ़ाइलों की जगहों के पाथ हों:
${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 Firebase कंसोल में "dSYM वाली फ़ाइल मौजूद नहीं है" की चेतावनी दिखाता है. अगर आपको यह चेतावनी मिलती है, तो सबसे पहले यह देखें कि Xcode, हर बिल्ड के लिए सही dSYM वाली फ़ाइल जनरेट कर रहा है या नहीं:
Xcode में अपना प्रोजेक्ट खोलें. इसके बाद, Xcode नेविगेटर में प्रोजेक्ट फ़ाइल चुनें.
अपना मुख्य बिल्ड टारगेट चुनें.
टारगेट का Build Settings टैब खोलें. इसके बाद, All पर क्लिक करें.
debug information formatखोजें.अपने सभी बिल्ड टाइप के लिए, Debug Information Format को DWARF with dSYM File पर सेट करें.
अपने ऐप्लिकेशन को फिर से बनाएं.
अब आपको क्रैश की रिपोर्ट, Crashlytics डैशबोर्ड में दिखनी चाहिए. अगर समस्या बनी रहती है या आपको अन्य गड़बड़ियां दिखती हैं, तो dSYM वाली फ़ाइलें ढूंढने की कोशिश करें और उन्हें Crashlytics पर मैन्युअल तरीके से अपलोड करें.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 वाली फ़ाइल देखी जा सकती है:
Xcode में, Organizer विंडो खोलें. इसके बाद, सूची में से अपना ऐप्लिकेशन चुनें. Xcode, आपके प्रोजेक्ट के लिए संग्रहों की सूची दिखाता है.
किसी संग्रह को Finder में देखने के लिए, Control दबाकर उस पर क्लिक करें. Control दबाकर उस पर फिर से क्लिक करें. इसके बाद, Show Package Contents पर क्लिक करें.
.xcarchiveमें, dSYMs डायरेक्ट्री होती है. इसमें, Xcode की संग्रह करने की प्रोसेस के तहत जनरेट की गई dSYM वाली फ़ाइलें होती हैं.
dSYM वाली फ़ाइलें अपलोड करना
Crashlytics dSYM वाली फ़ाइलें अपलोड करने के कई तरीके उपलब्ध कराता है. इन्हें अपने-आप या मैन्युअल तरीके से अपलोड किया जा सकता है.
(सुझाया गया) dSYM वाली फ़ाइलों को अपने-आप प्रोसेस करना और उन्हें अपलोड करना
जब आप पहली बार Crashlytics सेट अप करते हैं, तो आपने शायद अपने ऐप्लिकेशन के लिए, अपलोड करने की इस सेटिंग को कॉन्फ़िगर किया होगा. हालांकि, अगर अपलोड अपने-आप नहीं हो रहे हैं, तो देखें कि आपका कॉन्फ़िगरेशन सही है या नहीं.
dSYM वाली फ़ाइलें मैन्युअल तरीके से अपलोड करना
अगर अपलोड अपने-आप नहीं हो रहे हैं, तो dSYM वाली फ़ाइलें मैन्युअल तरीके से अपलोड की जा सकती हैं. इसके लिए, इनमें से कोई एक विकल्प चुनें.
पहला विकल्प: dSYM वाली फ़ाइलों वाली zip फ़ाइल अपलोड करने के लिए, Firebase कंसोल में "खींचें और छोड़ें" इंटरफ़ेस का इस्तेमाल करें. इसके लिए, DevOps और उपयोगकर्ता जुड़ाव > Crashlytics डैशबोर्ड > dSYMs टैब पर जाएं.
दूसरा विकल्प:
upload-symbolsस्क्रिप्ट का इस्तेमाल करें. इसे अपने बिल्ड प्रोसेस में कहीं से भी कॉल किया जा सकता है. इससे dSYM वाली फ़ाइलें मैन्युअल तरीके से अपलोड की जा सकती हैं.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चलाएं.