$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?> এক্সকোডে ফায়ারবেস

এক্সকোডে ফায়ারবেস ক্র্যাশলিটিক্স পোস্ট-বিল্ড স্ক্রিপ্ট স্বয়ংক্রিয়করণ

Temp mail SuperHeros
এক্সকোডে ফায়ারবেস ক্র্যাশলিটিক্স পোস্ট-বিল্ড স্ক্রিপ্ট স্বয়ংক্রিয়করণ
এক্সকোডে ফায়ারবেস ক্র্যাশলিটিক্স পোস্ট-বিল্ড স্ক্রিপ্ট স্বয়ংক্রিয়করণ

এক্সকোডে বিরামবিহীন ফায়ারবেস ক্র্যাশলিটিক্স সংহতকরণ নিশ্চিত করা

আইওএস অ্যাপ্লিকেশনগুলিতে ক্র্যাশগুলি ধরা এবং বিশ্লেষণের জন্য এক্সকোডে সঠিকভাবে ফায়ারবেস ক্র্যাশলিটিক্স স্থাপন করা গুরুত্বপূর্ণ। মূল পদক্ষেপগুলির মধ্যে একটি হ'ল পোস্ট-বিল্ড স্ক্রিপ্টটি স্বয়ংক্রিয়করণ, বিশেষত ফায়ারবেসের ডকুমেন্টেশন থেকে 4 সি এবং 4 ডি পদক্ষেপ। অনেক বিকাশকারী সিএমএকে ভেরিয়েবলগুলির সাথে সমস্যাগুলির কারণে এবং পথের অসঙ্গতিগুলি তৈরি করে এর সাথে লড়াই করে। 🔧

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

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

এই নিবন্ধটি এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্সের জন্য পোস্ট-বিল্ড স্ক্রিপ্টটি স্বয়ংক্রিয় করার জন্য একটি কাঠামোগত পদ্ধতির সন্ধান করে। আমরা সাধারণ সমস্যাগুলি বিশ্লেষণ করব, পরীক্ষিত সমাধানগুলি সরবরাহ করব এবং নিশ্চিত করব যে আপনার সংহতকরণটি বিল্ডগুলিতে স্থিতিশীল রয়েছে। আপনি যদি ফায়ারবেস ডিএসওয়াইএম আপলোডের সাথে লড়াই করে যাচ্ছেন তবে এই গাইডটি আপনার জন্য! 🚀

কমান্ড ব্যবহারের উদাহরণ
set(DWARF_DSYM_FOLDER_PATH ...) ডিএসওয়াইএম ফোল্ডারের পথটি সংজ্ঞায়িত করে যেখানে ডিবাগিং প্রতীকগুলি বিল্ডের পরে সংরক্ষণ করা হয়। ফায়ারবেস ক্র্যাশলাইটিক্সের পক্ষে ক্র্যাশ রিপোর্টগুলি সঠিকভাবে প্রক্রিয়া করার জন্য এটি গুরুত্বপূর্ণ।
add_custom_command(... POST_BUILD ...) সিএমএকে বিল্ড প্রক্রিয়া পরে একটি কাস্টম শেল স্ক্রিপ্ট এক্সিকিউশন পদক্ষেপ যুক্ত করে। এটি নিশ্চিত করে যে ডিএসআইএম ফাইলগুলি স্বয়ংক্রিয়ভাবে পোস্ট-বিল্ড আপলোড করা হবে।
/bin/sh -c বিভিন্ন শেল পরিবেশের সাথে সামঞ্জস্যতা নিশ্চিত করে সিএমকে বা একটি এক্সকোড বিল্ড ফেজ থেকে একটি শেল স্ক্রিপ্ট ইনলাইন কার্যকর করে।
DEPENDS পোস্ট-বিল্ড স্ক্রিপ্টটি কার্যকর করার আগে অবশ্যই সমাধান করা উচিত এমন নির্ভরতাগুলি নির্দিষ্ট করে, ফায়ারবেস ক্র্যাশলাইটিক্স তাদের প্রক্রিয়া করার আগে ফাইলগুলি বিদ্যমান তা নিশ্চিত করে।
[ -d "$DWARF_DSYM_FOLDER_PATH" ] প্রক্রিয়াজাতকরণ এবং আপলোড করার আগে ডিএসআইএম ফোল্ডারটি প্রত্যাশিত বিল্ড ডিরেক্টরিতে বিদ্যমান কিনা তা পরীক্ষা করে।
[ -x "${SRCROOT}/extralibs/firebase_ios_sdk/FirebaseCrashlytics/run" ] যাচাই করে যে ফায়ারবেস ক্র্যাশলিটিক্স স্ক্রিপ্টটি চালানোর চেষ্টা করার আগে এটি কার্যকরযোগ্য, অনুমতি ত্রুটিগুলি প্রতিরোধ করে।
exit 1 কোনও সমালোচনামূলক ত্রুটির মুখোমুখি হয়ে গেলে অবিলম্বে স্ক্রিপ্ট সম্পাদন বন্ধ করে দেয়, অনুপস্থিত নির্ভরতাগুলির সাথে আরও পদক্ষেপগুলি চালিয়ে যাওয়া থেকে বিরত রাখে।
echo "✅ Firebase Crashlytics script is executable." ডিবাগিং এবং বৈধতার জন্য কনসোলে স্থিতি বার্তাগুলি মুদ্রণ করে, স্ক্রিপ্ট এক্সিকিউশনকে সমস্যা সমাধান করা সহজ করে তোলে।
sh "${SRCROOT}/extralibs/firebase_ios_sdk/FirebaseCrashlytics/run" সঠিক পরিবেশের ভেরিয়েবলগুলি লোড হয়েছে তা নিশ্চিত করে ফায়ারবেস ক্র্যাশলাইটিক্স স্ক্রিপ্টটি সরাসরি তার ডিরেক্টরি থেকে চালায়।

এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্স স্বয়ংক্রিয়করণ: একটি গভীর ডাইভ

জন্য পোস্ট-বিল্ড স্ক্রিপ্ট স্বয়ংক্রিয় ফায়ারবেস ক্র্যাশলাইটিক্স নির্বিঘ্ন ক্র্যাশ রিপোর্ট সংহতকরণ নিশ্চিত করার জন্য এক্সকোডে প্রয়োজনীয়। আমরা যে স্ক্রিপ্টগুলি তৈরি করেছি সেগুলি প্রতিটি বিল্ডের পরে ডিএসআইএম ফাইলগুলি স্বয়ংক্রিয়ভাবে প্রক্রিয়াজাতকরণ এবং আপলোড করার চ্যালেঞ্জকে সম্বোধন করে। এটি বিশেষত বড় প্রকল্পগুলিতে কার্যকর যেখানে ম্যানুয়াল আপলোডগুলি সময়সাপেক্ষ এবং ত্রুটি-প্রবণ হতে পারে। সিএমকে এবং শেল স্ক্রিপ্টিংয়ের সংমিশ্রণ ব্যবহার করে আমরা নিশ্চিত করি যে ডিবাগিং প্রতীকগুলি সঠিকভাবে প্রক্রিয়াজাত করা হয়েছে এবং বিকাশকারীদের হস্তক্ষেপ ছাড়াই ফায়ারবেসে প্রেরণ করা হয়েছে। 🚀

আমাদের স্ক্রিপ্টের একটি মূল উপাদান হ'ল সিএমকে -তে `অ্যাড_কাস্টম_কম্যান্ড` নির্দেশিকা। এই কমান্ডটি বিল্ড প্রক্রিয়া শেষ হওয়ার পরে একটি শেল স্ক্রিপ্ট চালায়, এটি নিশ্চিত করে যে ফায়ারবেস ক্র্যাশলাইটিক্সের প্রয়োজনীয় ডিএসআইএম ফাইলগুলিতে অ্যাক্সেস রয়েছে। `নির্ভরশীল আর্গুমেন্টটি নিশ্চিত করে যে সমস্ত প্রয়োজনীয় ফাইল যেমন ডিএসওয়াইএম ফোল্ডার, তথ্য.প্লিস্ট, এবং গুগলস সার্ভিস-ইনফো.প্লিস্ট, স্ক্রিপ্টটি কার্যকর করার আগে উপলব্ধ। এই চেক ব্যতীত, নির্ভরতা অনুপস্থিতির কারণে স্ক্রিপ্টটি ব্যর্থ হতে পারে, ক্র্যাশ রিপোর্টিংয়ে সমস্যা সৃষ্টি করে।

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

অবশেষে, আমরা অটোমেশন প্রক্রিয়াটি বৈধ করার জন্য একটি ইউনিট পরীক্ষার স্ক্রিপ্ট অন্তর্ভুক্ত করেছি। এই পরীক্ষাটি ডিএসওয়াইএম ফোল্ডারটি বিদ্যমান কিনা এবং ফায়ারবেস ক্র্যাশলাইটিক্স স্ক্রিপ্টটি কার্যকরযোগ্য কিনা তা পরীক্ষা করে। এই চেকগুলিকে সংহত করে, বিকাশকারীরা তাদের অ্যাপ্লিকেশনগুলি স্থাপনের আগে কনফিগারেশন সমস্যাগুলি দ্রুত সনাক্ত এবং সমাধান করতে পারে। রিয়েল-ওয়ার্ল্ড প্রকল্পগুলিতে, এই স্বয়ংক্রিয় পরীক্ষাগুলি মোতায়েনের ব্যর্থতা রোধ করে এবং ক্র্যাশ লগগুলি ডিবাগিংয়ের জন্য সর্বদা অ্যাক্সেসযোগ্য তা নিশ্চিত করে অগণিত ঘন্টা সাশ্রয় করে। 💡

এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্সের জন্য ডিএসওয়াইএম আপলোড স্বয়ংক্রিয়

সিএমইএ এবং শেল স্ক্রিপ্টিং ব্যবহার করে পোস্ট-বিল্ড স্ক্রিপ্ট বাস্তবায়ন

# Define paths for dSYM processing
set(DWARF_DSYM_FOLDER_PATH "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}")
set(DWARF_DSYM_FILE "${DWARF_DSYM_FOLDER_PATH}/Contents/Resources/DWARF/${PRODUCT_NAME}")
set(INFO_PLIST "${DWARF_DSYM_FOLDER_PATH}/Contents/Info.plist")
set(GOOGLE_SERVICE_INFO_PLIST "$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist")
set(EXECUTABLE_PATH "$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)")
# Add a custom post-build command to upload dSYM files
add_custom_command(
    TARGET ${TARGET_NAME} POST_BUILD
    COMMAND /bin/sh -c "${CMAKE_CURRENT_SOURCE_DIR}/../../extralibs/firebase_ios_sdk/FirebaseCrashlytics/run"
    COMMENT "Processing and uploading dSYM files to Crashlytics"
    DEPENDS ${DWARF_DSYM_FOLDER_PATH} ${DWARF_DSYM_FILE} ${INFO_PLIST} ${GOOGLE_SERVICE_INFO_PLIST} ${EXECUTABLE_PATH}
)

বিকল্প পদ্ধতির: ম্যানুয়াল ইন্টিগ্রেশনের জন্য শেল স্ক্রিপ্ট

এক্সকোডে পোস্ট-বিল্ড ডিএসওয়াইএম আপলোডের জন্য শেল স্ক্রিপ্টিং

#!/bin/sh
# Define required paths
DWARF_DSYM_FOLDER_PATH="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
DWARF_DSYM_FILE="${DWARF_DSYM_FOLDER_PATH}/Contents/Resources/DWARF/${PRODUCT_NAME}"
INFO_PLIST="${DWARF_DSYM_FOLDER_PATH}/Contents/Info.plist"
GOOGLE_SERVICE_INFO_PLIST="$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist"
EXECUTABLE_PATH="$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)"
# Execute Firebase Crashlytics script
sh "${SRCROOT}/extralibs/firebase_ios_sdk/FirebaseCrashlytics/run"

বৈধতার জন্য ইউনিট পরীক্ষার স্ক্রিপ্ট

ডিএসওয়াইএম আপলোড অটোমেশনকে বৈধতা দেওয়ার জন্য বাশ স্ক্রিপ্ট

#!/bin/bash
echo "Running unit tests for Firebase Crashlytics integration..."
# Check if dSYM folder exists
if [ -d "$DWARF_DSYM_FOLDER_PATH" ]; then
    echo "✅ dSYM folder found."
else
    echo "❌ Error: dSYM folder missing."
    exit 1
fi
# Check if Firebase script is executable
if [ -x "${SRCROOT}/extralibs/firebase_ios_sdk/FirebaseCrashlytics/run" ]; then
    echo "✅ Firebase Crashlytics script is executable."
else
    echo "❌ Error: Firebase script not executable."
    exit 1
fi

এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্সের জন্য অটোমেশন বাড়ানো

একটি মূল দিক যা প্রায়শই স্বয়ংক্রিয়ভাবে উপেক্ষা করা হয় ফায়ারবেস ক্র্যাশলাইটিক্স এক্সকোডে বিভিন্ন বিল্ড পরিবেশ কার্যকরভাবে পরিচালনা করছে। বিকাশকারীরা প্রায়শই একাধিক কনফিগারেশন, যেমন ডিবাগ, রিলিজ এবং অ্যাড-হকের সাথে কাজ করে, প্রতিটি ডিএসওয়াইএম ফাইল প্রসেসিংয়ের জন্য নির্দিষ্ট সমন্বয় প্রয়োজন। এই পরিবেশগুলির সাথে গতিশীলভাবে অভিযোজিত পোস্ট-বিল্ড স্ক্রিপ্টটি নিশ্চিত করা যে উন্নয়নের সময় অপ্রয়োজনীয় আপলোডগুলি এড়িয়ে চলার সময় উত্পাদনে ক্র্যাশ রিপোর্টগুলি হারিয়ে যাওয়ার মতো সমস্যাগুলি রোধ করে। 🔧

আরেকটি গুরুত্বপূর্ণ বিবেচনা হ'ল ত্রুটি পরিচালনা করা এবং লগিং। একটি সু-কাঠামোগত পোস্ট-বিল্ড স্ক্রিপ্টটি কেবল প্রয়োজনীয় কমান্ডগুলি কার্যকর করা উচিত নয়, ব্যর্থতার ক্ষেত্রে অর্থবহ আউটপুটও সরবরাহ করা উচিত। বিস্তারিত লগ বার্তা এবং শর্তাধীন চেক প্রয়োগ করা বিকাশকারীদের দ্রুত সমস্যাগুলি সনাক্ত করতে দেয়। উদাহরণস্বরূপ, এটি যাচাই করা গুগলস সার্ভিস-ইনফো.প্লিস্ট ক্র্যাশলিটিক্স স্ক্রিপ্টটি সম্পাদন করার আগে সঠিকভাবে স্থাপন করা হয়েছে কনফিগারেশন-সম্পর্কিত ত্রুটিগুলি প্রতিরোধে সহায়তা করে। অতিরিক্তভাবে, লগিং প্রক্রিয়াগুলিকে সংহতকরণ নিশ্চিত করে যে সমস্যা সমাধান আরও সহজ, বিশেষত অবিচ্ছিন্ন ইন্টিগ্রেশন (সিআই) সরঞ্জামগুলি ব্যবহার করার সময়।

বৃহত্তর দলগুলির জন্য, অটোমেশন স্ক্রিপ্টগুলির সংস্করণ নিয়ন্ত্রণ এবং রক্ষণাবেক্ষণ অত্যন্ত গুরুত্বপূর্ণ। পরিবেশের ভেরিয়েবল এবং মডুলার স্ক্রিপ্টিং পদ্ধতির ব্যবহার করা কঠোর পাথগুলিকে বাধা দেয় যা দলের সদস্যদের সেটআপগুলিতে পরিবর্তিত হতে পারে। এটি নিশ্চিত করে যে ফায়ারবেস ক্র্যাশলিটিক্স ইন্টিগ্রেশন প্রকল্পটিতে কে কাজ করছে তা নির্বিশেষে সামঞ্জস্যপূর্ণ রয়েছে। দলগুলি সিআই/সিডি পাইপলাইনে ডিএসআইএম আপলোডগুলি অন্তর্ভুক্ত করে অটোমেশন আরও বাড়িয়ে তুলতে পারে, যখনই কোনও নতুন বিল্ড তৈরি করা হয় তখন ফায়ারবেস ক্র্যাশলিটিক্স স্বয়ংক্রিয়ভাবে প্রতীক ফাইলগুলি গ্রহণ করতে দেয়। 🚀

ফায়ারবেস ক্র্যাশলাইটিক্স অটোমেশন সম্পর্কে সাধারণ প্রশ্ন

  1. আমার ডিএসওয়াইএম ফাইল কেন ফায়ারবেস ক্র্যাশলাইটিক্সে আপলোড করছে না?
  2. স্ক্রিপ্টটি সঠিকভাবে ডিএসওয়াইএম পাথকে উল্লেখ করে তা নিশ্চিত করুন। ব্যবহার DWARF_DSYM_FOLDER_PATH এবং মৃত্যুদন্ড কার্যকর করার আগে অনুপস্থিত নির্ভরতাগুলির জন্য পরীক্ষা করুন।
  3. স্ক্রিপ্ট ব্যর্থ হলে আমি কি ম্যানুয়ালি ডিএসওয়াইএম ফাইলগুলি আপলোড করতে পারি?
  4. হ্যাঁ, আপনি ফায়ারবেস সিএলআই কমান্ডটি ব্যবহার করতে পারেন: firebase crashlytics:symbols:upload ডিএসওয়াইএম ফাইল পাথ অনুসরণ করে।
  5. আমি কীভাবে আমার পোস্ট-বিল্ড স্ক্রিপ্টটি নিয়ে সমস্যাগুলি ডিবাগ করব?
  6. যোগ করুন echo আপনার স্ক্রিপ্টের মূল পয়েন্টগুলিতে বিবৃতি এবং ত্রুটিগুলির জন্য এক্সকোড বিল্ড লগগুলি পরীক্ষা করুন।
  7. ফায়ারবেস ক্র্যাশলাইটিক্স কি সুইফট এবং অবজেক্টিভ-সি নিয়ে কাজ করে?
  8. হ্যাঁ, এটি উভয় ভাষা সমর্থন করে। নিশ্চিত করুন GoogleService-Info.plist আপনার টার্গেটের জন্য সঠিকভাবে কনফিগার করা হয়েছে।
  9. আমি কীভাবে সিআই/সিডি পাইপলাইনে ডিএসআইএম আপলোডগুলিকে সংহত করতে পারি?
  10. ফাস্টলেনের মতো সরঞ্জামগুলি ব্যবহার করুন এবং কমান্ড যুক্ত করুন upload_symbols_to_crashlytics ডিএসওয়াইএম আপলোডগুলি স্বয়ংক্রিয় করতে।

এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্স স্বয়ংক্রিয় করার বিষয়ে চূড়ান্ত চিন্তাভাবনা

অটোমেশনের মাধ্যমে এক্সকোডে ফায়ারবেস ক্র্যাশলাইটিক্সের সংহতকরণকে স্ট্রিমলাইন করা আইওএস বিকাশকারীদের জন্য গেম-চেঞ্জার। পোস্ট-বিল্ড স্ক্রিপ্টগুলি সঠিকভাবে প্রয়োগ করে, দলগুলি নিশ্চিত করতে পারে যে ক্র্যাশ রিপোর্টগুলি সর্বদা আপ-টু-ডেট থাকে, ম্যানুয়াল আপলোডগুলির প্রয়োজনীয়তা হ্রাস করে। সিএমকে এবং শেল স্ক্রিপ্টিংয়ের মতো সরঞ্জামগুলি ব্যবহার করা সাধারণ ত্রুটিগুলি রোধ করে এই প্রক্রিয়াটিকে সহজতর করতে সহায়তা করে। 🔧

যথাযথ লগিং এবং সিআই/সিডি ইন্টিগ্রেশন সহ ওয়ার্কফ্লোগুলিকে অনুকূল করে তোলে বৈশিষ্ট্য বিকাশের দিকে মনোনিবেশ করার সময় দলগুলিকে দক্ষতা বজায় রাখতে দেয়। ডিএসআইএম ফাইলগুলি গতিশীলভাবে পরিচালনা করা বা বৈধতা পদক্ষেপগুলি বাস্তবায়ন করা হোক না কেন, এই অটোমেশন কৌশলগুলি একটি মসৃণ ডিবাগিং অভিজ্ঞতা এবং আরও স্থিতিশীল অ্যাপ্লিকেশন প্রকাশের চক্রে অবদান রাখে। 🚀

নির্ভরযোগ্য উত্স এবং রেফারেন্স
  1. আইওএস প্রকল্পগুলিতে ক্র্যাশলিটিক্স সংহত করার জন্য অফিসিয়াল ফায়ারবেস ডকুমেন্টেশন: ফায়ারবেস ক্র্যাশলাইটিক্স সেটআপ
  2. প্রতীকীকরণের জন্য ডিএসওয়াইএম ফাইলগুলি পরিচালনা করার বিষয়ে অ্যাপল বিকাশকারী ডকুমেন্টেশন: অ্যাপল ডিএসওয়াইএম গাইড
  3. সিএমএকে ডকুমেন্টেশন কাস্টম পোস্ট-বিল্ড কমান্ড এবং অটোমেশন ব্যাখ্যা করে: Cmake কাস্টম কমান্ড
  4. এক্সকোডে সিএমকে ভেরিয়েবল সমস্যা সমাধানের বিষয়ে ওভারফ্লো আলোচনা স্ট্যাক: Cmake এবং xcode সমাধান