Marketing Version হল অ্যাপ্লিকেশনের একটি ব্যবহারকারী-মুখী ভার্শন স্ট্রিং যা অ্যাপ স্টোর এবং ডিভাইসে প্রদর্শিত হয়। Build Number-এর বিপরীতে, এই প্যারামিটারটি ব্যবহারকারীর ধারণার উপর ভিত্তি করে এবং এর অর্থবহ গুরুত্ব রয়েছে। Apple Developer, 2025-এর মতে, Marketing Version-এর সঠিক ব্যবহার আপডেটের প্রতি ব্যবহারকারীর আস্থা বাড়ায়।
মূল বিষয়
Marketing Version একটি সিম্যান্টিক স্ট্রিং যা শেষ ব্যবহারকারীর জন্য অ্যাপ্লিকেশন ভার্শন উপস্থাপন করে। iOS-এ এটি CFBundleShortVersionString কী-এর মাধ্যমে সেট করা হয়, Android-এ versionName-এর মাধ্যমে।
“Marketing Version” শব্দটি আনুষ্ঠানিকভাবে Xcode-এ ব্যবহৃত হয়: টার্গেট সেটিংস ইন্টারফেসে ফিল্ডটিকে “Marketing Version” বলা হয় এবং Info.plist-এ এটি CFBundleShortVersionString-এর সাথে মিলে যায়। Android-এ সমতুল্য হল versionName, যদিও শব্দটি কম ব্যবহৃত হয়।
Apple Developer ডকুমেন্টেশন (2025) অনুসারে, Marketing Version-এ সর্বোচ্চ তিনটি সংখ্যা বিন্দু দ্বারা পৃথক হয়ে থাকতে হবে, স্পেস বা বিশেষ অক্ষর ছাড়া। প্রতিটি সংখ্যা 255-এর বেশি হওয়া উচিত নয়।
আপনার Marketing Version এমনভাবে চয়ন করুন যাতে এটি পরিবর্তনের গুরুত্ব প্রতিফলিত করে: মৌলিক পরিবর্তনের জন্য মেজর আপডেট, নতুন কার্যকারিতার জন্য মাইনর আপডেট।
Marketing Version মৌলিকভাবে Build Number থেকে উদ্দেশ্যে ভিন্ন: প্রথমটি ব্যবহারকারীকে জানায়, দ্বিতীয়টি স্টোরের জন্য বিল্ড চিহ্নিত করে। Build Number Marketing Version পরিবর্তন না করেই বাড়তে পারে।
উদাহরণস্বরূপ, প্রকাশিত রিলিজে একটি গুরুত্বপূর্ণ বাগ ঠিক করার সময়, দল একই Marketing Version (1.2.0) কিন্তু বর্ধিত Build Number (15 থেকে 16) সহ অ্যাপ্লিকেশনটি পুনরায় বিল্ড করতে পারে। ব্যবহারকারী একই ভার্শন দেখবেন, কিন্তু স্টোর জানবে বিল্ডটি নতুন।
এই নমনীয়তা ডেভেলপারদের ভার্শন পরিবর্তনের বিজ্ঞপ্তি ছাড়াই সংশোধন প্রকাশ করতে দেয়।
Marketing Version ব্যবহারকারীর অ্যাপ্লিকেশনের সাথে মিথস্ক্রিয়ার বেশ কয়েকটি মূল পয়েন্টে দেখা যায়। অ্যাপ স্টোরে, এটি অ্যাপ কার্ড, আপডেট বিবরণ এবং ভার্শন ইতিহাসে দৃশ্যমান।
ডিভাইসে, Marketing Version সিস্টেম সেটিংস (“ফোন সম্পর্কে” বা “অ্যাপস” বিভাগ), App Store বা Google Play-এর মাধ্যমে আপডেট ডায়ালগ এবং অ্যাপের ভিতরে “আমাদের সম্পর্কে” স্ক্রিনে দেখানো হয়।
একটি স্পষ্ট Marketing Version ব্যবহারকারীদের তাদের ইনস্টল করা ভার্শনের প্রাসঙ্গিকতা মূল্যায়ন করতে এবং আপডেটের সিদ্ধান্ত নিতে সহায়তা করে।
iOS-এ, Marketing Version Xcode-এ টার্গেট সেটিংসের General ট্যাবে “Marketing Version” ফিল্ডের মাধ্যমে সেট করা হয়। মান Info.plist-এ CFBundleShortVersionString হিসাবে সংরক্ষিত হয়।
ভার্শন ফরম্যাট Apple দ্বারা কঠোরভাবে নিয়ন্ত্রিত: স্ট্রিংটিতে বিন্দু দ্বারা পৃথক করা এক থেকে তিনটি সংখ্যা থাকতে হবে (যেমন, 1, 1.2 বা 1.2.3)। সর্বোচ্চ দৈর্ঘ্য 18 অক্ষর। প্রতিটি সংখ্যা 255-এর বেশি হওয়া উচিত নয়।
Apple App Store Review Guidelines (2025) অনুসারে, App Store Connect একটি বিল্ড আপলোডের অনুমতি দেয় না যদি Marketing Version পূর্ববর্তী প্রকাশিত ভার্শন থেকে একাধিক মেজর বা মাইনর মান দ্বারা পৃথক হয় — এটি ব্যবহারকারীদের মিস করা আপডেট থেকে রক্ষা করে।
কমান্ড লাইন থেকে Marketing Version পরিচালনা করতে agvtool ব্যবহার করুন — এটি CI/CD-এর সাথে একীকরণ সহজ করে এবং Build Number-এর সাথে সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
Android-এ, Marketing Version build.gradle ফাইলে versionName প্যারামিটারের মাধ্যমে সেট করা হয়। iOS-এর বিপরীতে, Android ভার্শন স্ট্রিং ফরম্যাটে কঠোর বিধিনিষেধ আরোপ করে না।
versionName-এ যেকোনো অক্ষর থাকতে পারে: অক্ষর, সংখ্যা, হাইফেন এবং বিন্দু। Google Play এই স্ট্রিংটি অ্যাপ কার্ড এবং আপডেট তালিকায় প্রদর্শন করে, কিন্তু এটি কোনও প্যাটার্নের বিরুদ্ধে বৈধতা দেয় না।
তবে, Google Play সামঞ্জস্যের জন্য সিম্যান্টিক Major.Minor.Patch ফরম্যাট মেনে চলার সুপারিশ করে। এটি ব্যবহারকারীদের জন্য ভার্শন বোঝা সহজ করে এবং স্বয়ংক্রিয় আপডেট বিশ্লেষণ সক্ষম করে।
এমন একটি versionName সেট করুন যা স্পষ্টভাবে রিলিজ ধরন — মেজর, মাইনর বা প্যাচ — প্রতিফলিত করে। এটি ব্যবহারকারীদের দ্রুত পরিবর্তনের গুরুত্ব মূল্যায়ন করতে সহায়তা করে।
Android-এ versionName Git ট্যাগ বা CI/CD ভেরিয়েবলের উপর ভিত্তি করে ডায়নামিকভাবে তৈরি করা যেতে পারে। এটি ভার্শনিং প্রক্রিয়া সহজ করে এবং রিপোজিটরি ও বিল্ডের মধ্যে অসঙ্গতি দূর করে।
একটি সাধারণ পদ্ধতি হল একটি Git ট্যাগ (যেমন, v2.1.0) পড়া এবং এর মান versionName হিসাবে ব্যবহার করা। যদি ট্যাগ না থাকে, তবে তারিখ এবং কমিট নম্বরের উপর ভিত্তি করে একটি ভার্শন তৈরি করা যেতে পারে।
এই পদ্ধতি নিশ্চিত করে যে versionName সর্বদা সোর্স কোডের অবস্থার সাথে মেলে এবং ম্যানুয়াল আপডেটের প্রয়োজন হয় না।
Marketing Version এবং Build Number হল দুটি স্বতন্ত্র প্যারামিটার যা ভিন্ন উদ্দেশ্য পূরণ করে। Marketing Version ব্যবহারকারীকে জানায়, যখন Build Number প্রযুক্তিগতভাবে বিল্ড চিহ্নিত করে।
মূল পার্থক্য হল অনন্যতা। Build Number প্রতিটি বিল্ডের জন্য অনন্য হতে হবে। Marketing Version পুনরাবৃত্তি হতে পারে: একই ভার্শনের একাধিক বিল্ডে একই Marketing Version কিন্তু ভিন্ন Build Numbers থাকে।
Google Play নীতি (2025) অনুসারে, আপনি যদি একই Marketing Version কিন্তু ভিন্ন Build Numbers সহ দুটি APK আপলোড করেন, Google Play উভয়কে একই ভার্শনের ভিন্ন বিল্ড হিসাবে গ্রহণ করবে। App Store-এর জন্যও একই নিয়ম প্রযোজ্য।
মনে রাখবেন: Build Number মেশিনের জন্য, Marketing Version মানুষের জন্য। প্রথমটি স্বয়ংক্রিয় করুন এবং দ্বিতীয়টি সাবধানে পরিকল্পনা করুন।
কৌশল নির্বাচন অ্যাপ্লিকেশনের ধরন, দর্শক এবং রিলিজ প্রক্রিয়ার উপর নির্ভর করে। তিনটি প্রধান স্কিম — সিম্যান্টিক, ক্যালেন্ডার এবং হাইব্রিড — অধিকাংশ পরিস্থিতি কভার করে।
সিম্যান্টিক ভার্শনিং (SemVer) Major.Minor.Patch ফরম্যাট ব্যবহার করে এবং কঠোরভাবে নির্ধারণ করে কখন প্রতিটি উপাদান বাড়াতে হবে। এটি পাবলিক API এবং জটিল ইন্টিগ্রেশন সহ অ্যাপ্লিকেশনের জন্য আদর্শ।
semver.org (2023) অনুসারে, SemVer স্পেসিফিকেশনের ভার্শন 2.0.0 89% ওপেন-সোর্স মোবাইল প্রজেক্টে ব্যবহৃত হয় এবং সমস্ত প্যাকেজ ম্যানেজার দ্বারা সমর্থিত।
ক্যালেন্ডার ভার্শনিং (CalVer) রিলিজ তারিখকে ভার্শন হিসাবে ব্যবহার করে — উদাহরণস্বরূপ, জুন 2025-এর জন্য 25.06। এই পদ্ধতিটি ঘন ঘন আপডেট হওয়া অ্যাপ্লিকেশনে জনপ্রিয়।
CalVer পরিবর্তনের গুরুত্ব সম্পর্কে তথ্য দেয় না, তবে ভার্শনের সতেজতা স্পষ্টভাবে দেখায়। ব্যবহারকারীরা অবিলম্বে বুঝতে পারেন যে ভার্শন 25.06, 25.03-এর চেয়ে নতুন।
ক্যালেন্ডার ভার্শনিং বেছে নিন যদি আপনার অ্যাপ ঘন ঘন আপডেট হয় এবং ব্যবহারকারীরা পরিবর্তনের পরিধির চেয়ে ডেটার সতেজতা বেশি গুরুত্ব দেন।
MVP এবং স্টার্টআপের জন্য, প্যাচ ছাড়া একটি সাধারণ সিম্যান্টিক ভার্শন (Major.Minor) উপযুক্ত। দীর্ঘমেয়াদী সমর্থন সহ পরিপক্ক পণ্যের জন্য — সম্পূর্ণ SemVer। ধারাবাহিক রিলিজযুক্ত অ্যাপের জন্য — CalVer।
কখনও তারিখকে Build Number হিসাবে ব্যবহার করবেন না — এটি প্রতিদিন একাধিক বিল্ডের সাথে দ্বন্দ্ব সৃষ্টি করতে পারে। Build Number অনুক্রমিক বা যৌগিক হওয়া উচিত, কিন্তু সর্বদা একমুখীভাবে বৃদ্ধি পাচ্ছে।
একটি সাধারণ ভুল হল নতুন মেজর লাইনে যাওয়ার সময় ভার্শন উপাদান এড়িয়ে যাওয়া। উদাহরণস্বরূপ, ভার্শন 1.9.9-এর পরে, পরবর্তীটি 2.0.0 হওয়া উচিত, 1.10.0 নয়। এটি সিম্যান্টিকস ভঙ্গ করে এবং ব্যবহারকারীদের বিভ্রান্ত করে।
আরেকটি সাধারণ সমস্যা হল কোড এবং অ্যাপ স্টোরে Marketing Version-এর অমিল। পর্যালোচনার জন্য বিল্ড জমা দেওয়ার আগে সর্বদা যাচাই করুন যে build.gradle-এ versionName Google Play Console বা App Store Connect-এ উল্লেখিত ভার্শনের সাথে মেলে।
কোড উদাহরণ দেখায় কিভাবে উভয় প্ল্যাটফর্মে Marketing Version সেট করতে হয় এবং এর আপডেট স্বয়ংক্রিয় করতে হয়।
Android-এ, versionName build.gradle-এ সেট করা হয়। মান স্থির হতে পারে বা পরিবেশ ভেরিয়েবল থেকে পড়া যেতে পারে।
android {
defaultConfig {
versionCode 15
versionName "2.1.0"
}
}
// Git ট্যাগ থেকে ভার্শন পড়া
def getVersionNameFromGit = {
def tag = "git describe --tags".execute().
text.trim()
return tag.startsWith("v") ? tag.substring(1) : tag
}
versionName একটি Git ট্যাগ থেকে নিষ্কাশিত হয়, যা রিপোজিটরি ভার্শন এবং নির্মিত অ্যাপ্লিকেশনের মধ্যে সমন্বয় নিশ্চিত করে।
iOS-এ, Marketing Version Xcode বা agvtool-এর মাধ্যমে সেট করা হয়। নীচের কমান্ডটি একটি নতুন মার্কেটিং ভার্শন সেট করে।
# Marketing Version সেট করা
xcrun agvtool new-marketing-version 2.1.0
# স্বয়ংক্রিয় বৃদ্ধি
xcrun agvtool next-marketing-version
agvtool স্বয়ংক্রিয়ভাবে Info.plist আপডেট করে এবং Xcode প্রকল্পের সমস্ত টার্গেটে ভার্শন সিঙ্ক্রোনাইজ করে।
Fastlane একটি স্ক্রিপ্ট থেকে উভয় প্ল্যাটফর্মে Marketing Version পরিচালনা করার অনুমতি দেয়, যা ক্রস-প্ল্যাটফর্ম প্রকল্প রক্ষণাবেক্ষণ সহজ করে।
# মার্কেটিং ভার্শন সেট করা
increment_version_number(
version_number: "2.1.0"
)
# মাইনর ভার্শনের স্বয়ংক্রিয় বৃদ্ধি
increment_version_number(
bump_type: "minor"
)
Fastlane উভয় প্ল্যাটফর্মে কাজ করে এবং অধিকাংশ CI/CD পরিষেবা দ্বারা সমর্থিত।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Marketing Version ব্যবহারকারীর কাছে দৃশ্যমান ভার্শন (স্টোরে দেখানো হয়), যেখানে Build Number একটি অভ্যন্তরীণ বিল্ড শনাক্তকারী। Marketing Version পুনরাবৃত্তি হতে পারে, Build Number প্রতিটি বিল্ডের জন্য অনন্য হতে হবে।
প্রতি নতুন কার্যকারিতা প্রকাশ, API পরিবর্তন বা বড় সংশোধনের সাথে। হটফিক্স রিলিজের জন্য, Marketing Version অপরিবর্তিত থাকতে পারে — শুধু Build Number বাড়ান।
Android-এ — হ্যাঁ, versionName-এ যেকোনো অক্ষর থাকতে পারে। iOS-এ — শুধু সংখ্যা এবং বিন্দু। Apple App Store সামঞ্জস্যের জন্য সংখ্যাসূচক ফরম্যাট ব্যবহার করার সুপারিশ করে।
সুপারিশ করা হয় না। অ্যাপ স্টোর ভার্শন রোলব্যাক সমর্থন করে না। পরিবর্তে, সংশোধন সহ একটি নতুন ভার্শন প্রকাশ করুন এবং প্যাচ উপাদান বাড়ান। ব্যবহারকারীরা স্বয়ংক্রিয়ভাবে নতুন ভার্শনে স্যুইচ করবেন।
প্রকল্প রুটে একটি শেয়ার্ড কনফিগারেশন ফাইল (যেমন, version.properties) ব্যবহার করুন। উভয় প্ল্যাটফর্মের বিল্ড স্ক্রিপ্ট এই ফাইল থেকে ভার্শন পড়ে, মান সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন