Crashlytics ড্যাশবোর্ডে (Apple প্ল্যাটফর্ম) পাঠযোগ্য ক্র্যাশ রিপোর্ট পাওয়া

প্ল্যাটফর্ম বেছে নিন: iOS+ Android Flutter Unity


সাধারণত, Firebase Crashlytics আপনাকে ডিঅবফস্কেট করা এবং মানুষের-পঠনযোগ্য ক্র্যাশ রিপোর্ট দিতে আপনার ডিবাগ সিম্বল (dSYM) ফাইল অটোমেটিক প্রসেস করে। আপনি সাধারণত Crashlytics-এর প্রাথমিক সেট-আপের সময় আপনার অ্যাপে এই আচরণ কনফিগার করেন, বিশেষ করে রান স্ক্রিপ্ট যোগ করার মাধ্যমে যা আপনার অ্যাপের বিল্ড ফেজ চলাকালীন dSYM ফাইল অটোমেটিক আপলোড করে।

দুর্ভাগ্যবশত, এমন কয়েকটি ঘটনা আছে যার জন্য আপনার অটোমেটিক 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)
    আপনার প্রোজেক্ট বিল্ড সেটিংসে 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 dSYMs তৈরি করছে কিনা তা চেক করুন

বেশিরভাগ ক্ষেত্রেই, Xcode dSYM ফাইল তৈরি না করার কারণে সেগুলি পাওয়া যায় না। আপলোড করা না গেলে, Crashlytics Firebase কনসোলে "dSYM নেই" সতর্কতা দেখায়। আপনি এই সতর্কতা পেলে, প্রথমে চেক করুন যে Xcode প্রতিটি বিল্ডের জন্য সঠিক dSYM তৈরি করছে কিনা:

  1. Xcode-এ আপনার প্রোজেক্ট খুলুন এবং তারপরে Xcode নেভিগেটরে প্রোজেক্ট ফাইল বেছে নিন।

  2. আপনার প্রধান বিল্ড টার্গেট বেছে নিন।

  3. টার্গেটের বিল্ড সেটিংস ট্যাব খুলুন এবং তারপরে সব বিকল্পে ক্লিক করুন।

  4. debug information format সার্চ করুন।

  5. আপনার সব বিল্ডের ধরনের জন্য ডিবাগ তথ্য ফর্ম্যাট dSYM ফাইল সহ DWARF হিসেবে সেট করুন।

  6. আপনার অ্যাপ আবার তৈরি করুন।

আপনার ক্র্যাশ রিপোর্ট এখন Crashlytics ড্যাশবোর্ডে দেখা যাবে। সমস্যাটি থেকে গেলে অথবা আপনি অন্য কোনও সমস্যার সম্মুখীন হলে, আপনার dSYMs খুঁজে বের করার চেষ্টা করুন এবং সেগুলি 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 খুঁজে দেখতে পারেন:

  1. Xcode-এ, Organizer উইন্ডো খুলুন এবং তারপরে তালিকা থেকে আপনার অ্যাপ বেছে নিন। Xcode আপনার প্রোজেক্টের জন্য আর্কাইভের একটি তালিকা দেখায়।

  2. Finder-এ আর্কাইভ দেখতে Control-ক্লিক করুন। আবার কন্ট্রোল-ক্লিক করুন এবং প্যাকেজের কন্টেন্ট দেখুন বিকল্পে ক্লিক করুন।

  3. .xcarchive-এর মধ্যে একটি dSYMs ডিরেক্টরি থাকে যাতে Xcode-এর আর্কাইভ করার প্রসেসের অংশ হিসেবে জেনারেট করা dSYMs থাকে।

আপনার dSYM আপলোড করুন

Crashlytics আপনার dSYMs ফাইল আপলোড করার একাধিক পদ্ধতি সমর্থন করে, হয় অটোমেটিক অথবা ম্যানুয়ালি।

(সাজেস্ট করা) আপনার dSYM অটোমেটিক প্রসেস করা এবং ফাইল আপলোড করা

আপনি প্রথমবার Crashlytics সেট-আপ করার সময়, সম্ভবত আপনার অ্যাপের জন্য এই অটোমেটিক আপলোড আচরণ কনফিগার করেছেন। তবে, অটোমেটিক আপলোড কাজ না করলে, আপনার কনফিগারেশন সঠিক আছে কিনা তা চেক করুন।

আপনার dSYM ফাইল ম্যানুয়ালি আপলোড করুন

অটোমেটিক আপলোড কাজ না করলে, আপনি নিম্নলিখিত বিকল্পগুলির যেকোনও একটি ব্যবহার করে আপনার dSYM ফাইল ম্যানুয়ালি আপলোড করতে পারবেন।

  • বিকল্প ১: আপনার dSYM ফাইল থাকা zip ফাইল আপলোড করতে Firebase কনসোলে "ড্র্যাগ অ্যান্ড ড্রপ" ইন্টারফেস ব্যবহার করুন (এর জন্য DevOps ও এনগেজমেন্ট > 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 রান করুন।