ক্র্যাশলিটিক্স ড্যাশবোর্ডে (অ্যাপল প্ল্যাটফর্ম) পঠনযোগ্য ক্র্যাশ রিপোর্ট পান।

প্ল্যাটফর্ম নির্বাচন করুন: iOS+ অ্যান্ড্রয়েড ফ্লাটার ইউনিটি


ডিফল্টরূপে, 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. Build Phases ট্যাবে ক্লিক করুন, এবং তারপরে Run Script সেকশনটি এক্সপ্যান্ড করুন।

  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 Firebase কনসোলে একটি "Missing dSYM" অ্যালার্ট প্রদর্শন করে। আপনি যদি এই অ্যালার্টটি পান, তাহলে প্রথমে পরীক্ষা করে দেখুন যে Xcode প্রতিটি বিল্ডের জন্য সঠিক dSYM তৈরি করছে কিনা:

  1. Xcode-এ আপনার প্রজেক্টটি খুলুন এবং তারপর Xcode Navigator থেকে প্রজেক্ট ফাইলটি নির্বাচন করুন।

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

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

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

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

  6. আপনার অ্যাপটি পুনর্নির্মাণ করুন।

আপনার ক্র্যাশ রিপোর্টগুলো এখন 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 খুঁজতে পারেন।

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

  2. ফাইন্ডারে কোনো আর্কাইভ দেখতে সেটির উপর কন্ট্রোল-ক্লিক করুন। আবার কন্ট্রোল-ক্লিক করুন এবং তারপরে 'Show Package Contents'-এ ক্লিক করুন।

  3. .xcarchive এর মধ্যে একটি dSYMs ডিরেক্টরি থাকে, যেখানে Xcode-এর আর্কাইভ প্রক্রিয়ার অংশ হিসেবে তৈরি হওয়া dSYM ফাইলগুলো সংরক্ষিত থাকে।

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

Crashlytics আপনার dSYMs ফাইল আপলোড করার জন্য স্বয়ংক্রিয়ভাবে বা ম্যানুয়ালি একাধিক উপায় সমর্থন করে।

(সুপারিশকৃত) আপনার dSYM-গুলো স্বয়ংক্রিয়ভাবে প্রক্রিয়া করুন এবং ফাইলগুলো আপলোড করুন।

আপনি যখন প্রথমবার Crashlytics সেট আপ করেছিলেন, তখন সম্ভবত আপনার অ্যাপের জন্য এই স্বয়ংক্রিয় আপলোড ব্যবস্থাটি কনফিগার করেছিলেন। তবে, যদি স্বয়ংক্রিয় আপলোড ব্যর্থ হয়, তাহলে আপনার কনফিগারেশনটি সঠিক আছে কিনা তা পরীক্ষা করুন

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

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

  • বিকল্প ১ : আপনার dSYM ফাইলগুলো সম্বলিত একটি জিপ ফাইল আপলোড করতে কনসোল-ভিত্তিক 'ড্র্যাগ অ্যান্ড ড্রপ' বিকল্পটি ব্যবহার করুন ( Firebase কনসোল > Crashlytics > dSYMs ট্যাবে যান)।

  • বিকল্প ২ : আপনার dSYM ফাইলগুলো ম্যানুয়ালি আপলোড করার জন্য upload-symbols স্ক্রিপ্টটি ব্যবহার করুন, যা আপনি আপনার বিল্ড প্রসেসের যেকোনো জায়গা থেকে কল করতে পারেন। 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 চালান।