ডিফল্টরূপে, 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 ), নিশ্চিত করুন যে আপনার নিম্নলিখিত সেটআপ আছে:
বিল্ড ফেজেস ট্যাবে ক্লিক করুন, এবং তারপর রান স্ক্রিপ্ট বিভাগটি প্রসারিত করুন।
ইনপুট ফাইল বিভাগে, নিশ্চিত করুন যে আপনার কাছে নিম্নলিখিত ফাইলগুলির অবস্থানের জন্য পাথ আছে:
${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 কনসোলে "missing dSYM" সতর্কতা প্রদর্শন করে। যদি আপনি এই সতর্কতাটি পান, তাহলে প্রথমে পরীক্ষা করুন যে Xcode প্রতিটি বিল্ডের জন্য সঠিক dSYM তৈরি করছে কিনা:
Xcode-এ আপনার প্রকল্পটি খুলুন, এবং তারপর Xcode Navigator-এ প্রকল্প ফাইলটি নির্বাচন করুন।
আপনার প্রধান নির্মাণ লক্ষ্য নির্বাচন করুন।
টার্গেটের বিল্ড সেটিংস ট্যাবটি খুলুন, এবং তারপর All এ ক্লিক করুন।
debug information formatঅনুসন্ধান করুন।আপনার সকল ধরণের বিল্ডের জন্য dSYM ফাইল সহ ডিবাগ ইনফরমেশন ফর্ম্যাটকে DWARF এ সেট করুন।
আপনার অ্যাপটি পুনর্নির্মাণ করুন।
আপনার ক্র্যাশ রিপোর্টগুলি এখন Crashlytics ড্যাশবোর্ডে প্রদর্শিত হবে। যদি সমস্যাটি থেকে যায় অথবা আপনি অন্য কোনও ত্রুটির সম্মুখীন হন, তাহলে আপনার 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 খুঁজে পেতে পারেন:
Xcode-এ, Organizer উইন্ডোটি খুলুন, এবং তারপর তালিকা থেকে আপনার অ্যাপটি নির্বাচন করুন। Xcode আপনার প্রকল্পের জন্য সংরক্ষণাগারের একটি তালিকা প্রদর্শন করে।
Finder-এ একটি আর্কাইভ দেখতে Control-এ ক্লিক করুন। আবার Control-এ ক্লিক করুন, এবং তারপর Show Package Contents এ ক্লিক করুন।
.xcarchiveএর মধ্যে একটি dSYMs ডিরেক্টরি রয়েছে যাতে Xcode-এর আর্কাইভ প্রক্রিয়ার অংশ হিসেবে তৈরি dSYM থাকে।
আপনার dSYM গুলি আপলোড করুন
Crashlytics আপনার dSYM ফাইলগুলি স্বয়ংক্রিয়ভাবে বা ম্যানুয়ালি আপলোড করার একাধিক উপায় সমর্থন করে।
(প্রস্তাবিত) আপনার dSYM গুলি স্বয়ংক্রিয়ভাবে প্রক্রিয়া করুন এবং ফাইলগুলি আপলোড করুন।
যখন আপনি প্রাথমিকভাবে 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 \{\}
বিকল্প B : আপনার টার্মিনাল থেকে সরাসরি স্ক্রিপ্টটি চালান:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
এই স্ক্রিপ্ট সম্পর্কে ব্যবহারের নোট এবং অতিরিক্ত নির্দেশাবলীর জন্য,
--helpপ্যারামিটার দিয়েupload-symbolsচালান।