Version Code: এটি কী, সংখ্যাসূচক শনাক্তকারী এবং আপডেট

লেখক: IT Sectr প্রকাশিত: 2026-04-17 পড়ার সময়: 8 মিনিট

Version Code হল Android ডেভেলপমেন্টে একটি ধনাত্মক পূর্ণসংখ্যা যা প্রতিটি নতুন অ্যাপ্লিকেশন বিল্ডকে স্বতন্ত্রভাবে শনাক্ত করে। Google Play এবং Android সিস্টেম একটি আপডেট প্রয়োজন কিনা তা নির্ধারণ করতে Version Code ব্যবহার করে: যদি নতুন বিল্ডের কোড ইনস্টল করা সংস্করণের চেয়ে বড় হয়, তাহলে আপডেট প্রক্রিয়া শুরু হয়। Android Developer Documentation অনুযায়ী, Version Code ব্যবহারকারীকে দেখানো হয় না এবং শুধুমাত্র অভ্যন্তরীণ সংস্করণ নম্বরিংয়ের জন্য কাজ করে।

মূল পয়েন্ট

  • Version Code — Google Play এর জন্য Android অ্যাপ বিল্ডের সংখ্যাসূচক শনাক্তকারী
  • বৃদ্ধি — প্রতিটি নতুন বিল্ডের Version Code আগেরটির চেয়ে বেশি হতে হবে
  • Version Name — ব্যবহারকারীর জন্য স্ট্রিং সংস্করণ, আপডেট প্রক্রিয়াকে প্রভাবিত করে না
  • কনফিগারেশন build.gradle এ versionCode ফিল্ডের মাধ্যমে করা হয়
  • সীমা — Version Code এর সর্বোচ্চ মান 2100000000

Android এ Version Code কী

Version Code হল Integer টাইপের একটি পূর্ণসংখ্যা যা Android অ্যাপ্লিকেশনের প্রতিটি বিল্ডকে বরাদ্দ করা হয়। Version Name এর বিপরীতে, Version Code ব্যবহারকারীকে প্রদর্শিত হয় না এবং শুধুমাত্র অপারেটিং সিস্টেম এবং Google Play দ্বারা আপডেট ইনস্টল করার সময় সংস্করণ তুলনা করার জন্য ব্যবহৃত হয়।

Version Code ফর্ম্যাট

Version Code 1 থেকে 2100000000 এর মধ্যে একটি ধনাত্মক পূর্ণসংখ্যা হতে হবে। প্রতিটি পরবর্তী বিল্ডের Version Code আগেরটির চেয়ে কঠোরভাবে বেশি হতে হবে। যদি একজন ডেভেলপার Version Code 5 সহ একটি বিল্ড প্রকাশ করে, তবে পরবর্তী প্রকাশ 6, 7 বা 5 এর চেয়ে বড় যেকোনো সংখ্যা ব্যবহার করতে পারে, কিন্তু 4 বা আবার 5 নয়।

উৎপত্তির ইতিহাস

Google 2007 সালে Android SDK প্রকাশের সাথে Version Code এবং Version Name এর বিভাজন চালু করেছিল। Version Code স্বয়ংক্রিয় সংস্করণ তুলনার জন্য একটি মেশিন শনাক্তকারী হিসেবে ডিজাইন করা হয়েছিল, যখন Version Name একটি মানব-পাঠযোগ্য লেবেল হিসেবে। এই বিভাজন ডেভেলপারকে সংস্করণটি তাদের ইচ্ছামতো নাম দেওয়ার অনুমতি দেয়, সংখ্যাসূচক কোডের মাধ্যমে কঠোর আপডেট ক্রম বজায় রেখে।

প্যারামিটারVersion CodeVersion Name
ডেটা টাইপIntegerString
ব্যবহারকারীকে প্রদর্শননাহ্যাঁ
সংস্করণ তুলনাসংখ্যাসূচক তুলনাব্যবহৃত হয় না
ফর্ম্যাট1, 2, 3, 10, 1001.0.0, 2.3.1-rc
সীমা1 — 2100000000কোনো সীমা নেই

Version Code এর মাধ্যমে ভার্সনিং কিভাবে কাজ করে

Version Code এর তুলনা প্রক্রিয়া Android অপারেটিং সিস্টেম এবং Google Play স্টোরে নির্মিত। প্রতিটি প্রকাশের সাথে, Google Play পরীক্ষা করে যে নতুন বিল্ডের Version Code ইনস্টল করা সংস্করণের কোডের চেয়ে বেশি। যদি শর্ত পূরণ না হয়, তবে প্রকাশটি ত্রুটি সহ প্রত্যাখ্যান করা হয়।

আপডেট চেক প্রক্রিয়া

যখন একটি ডিভাইস আপডেট চেক করার জন্য Google Play এর সাথে যোগাযোগ করে, সার্ভার ইনস্টল করা অ্যাপ্লিকেশনের Version Code কে স্টোরে উপলব্ধ সর্বোচ্চের সাথে তুলনা করে। যদি সার্ভারে কোড বেশি হয়, তাহলে আপডেটের ডাউনলোড এবং ইনস্টলেশন শুরু হয়। ব্যবহারকারী ডেভেলপারের নির্দিষ্ট করা Version Name দেখে, কিন্তু আপডেটের সিদ্ধান্ত Version Code এর ভিত্তিতে নেওয়া হয়।

Version Code বৃদ্ধি

ডেভেলপাররা Version Code বাড়ানোর জন্য বিভিন্ন কৌশল প্রয়োগ করে। সবচেয়ে সহজ হল প্রতিটি বিল্ডের সাথে 1 বৃদ্ধি করা। CI/CD পাইপলাইনের জন্য, প্রায়ই timestamp বা বিল্ড নম্বর ব্যবহার করা হয়: 2026070301 (বছর-মাস-দিন-সংখ্যা)। এটি গুরুত্বপূর্ণ যে কোড একদিকভাবে বৃদ্ধি পায় এবং বিভিন্ন বিল্ড এবং Google Play ট্র্যাকের মধ্যে পুনরাবৃত্তি না হয়।

  • একদিক বৃদ্ধি — রিলিজ ব্রাঞ্চে প্রতিটি কমিটে 1 করে বৃদ্ধি
  • Timestamp ফর্ম্যাট — দৈনিক বিল্ডের জন্য 20260703, প্রতিদিন একাধিক বিল্ডের জন্য 2026070301
  • সংখ্যায় SemVer — সংস্করণ 1.1.0 এর জন্য 100010000 (major 1, minor 1, patch 0)
  • বিল্ড নম্বর — CI সিস্টেম (Jenkins, GitHub Actions) থেকে BUILD_NUMBER ব্যবহার

Version Code এবং Version Name এর মধ্যে পার্থক্য

Version Code এবং Version Name build.gradle এ দুটি স্বাধীন ফিল্ড যা ভিন্ন ভিন্ন কাজ করে। Version Code সিস্টেমের জন্য একটি অভ্যন্তরীণ শনাক্তকারী, Version Name ব্যবহারকারীর জন্য একটি মার্কেটিং লেবেল। এরা একে অপরের থেকে স্বাধীনভাবে পরিবর্তিত হতে পারে।

ব্যবহারকারীর জন্য Version Name

Version Name একটি স্ট্রিং যা অ্যাপ্লিকেশন সেটিংস, Google Play এবং আপডেট ডায়ালগে প্রদর্শিত হয়। ডেভেলপার যেকোনো ফর্ম্যাট নির্দিষ্ট করতে পারে: 1.0.0, 2.3.1-beta, 3.0-rc1। Version Name স্ট্রিং সংস্করণ তুলনার জন্য ব্যবহৃত হয় না — Google Play সর্বদা Version Code এর উপর নির্ভর করে।

পার্থক্যের পরিস্থিতি

এমন পরিস্থিতি সম্ভব যেখানে Version Code বাড়ে যখন Version Name একই থাকে। উদাহরণস্বরূপ, যদি একজন ডেভেলপার কার্যকারিতা না বদলে hotfix বিল্ডে একটি গুরুতর বাগ ঠিক করে। Version Name 2.0.0 থাকে, যখন Version Code 5 থেকে 6 এ পরিবর্তিত হয়। Google Play এই ধরনের আপডেট সঠিকভাবে পরিচালনা করবে।

groovy
// উদাহরণ: version name পরিবর্তন হয় না, কোড বৃদ্ধি পায়
android {
    defaultConfig {
        versionCode 6  // ছিল 5 — নতুন বৈশিষ্ট্য ছাড়া hotfix
        versionName "2.0.0"  // পরিবর্তন হয়নি
    }
}

// রানটাইমে সংস্করণ পরীক্ষা
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Name: $name")

build.gradle এ Version Code কনফিগার করা

Version Code কনফিগারেশন অ্যাপ্লিকেশন মডিউলের build.gradle ফাইলে করা হয়। versionCode ফিল্ড একটি পূর্ণসংখ্যা গ্রহণ করে এবং defaultConfig ব্লকের অংশ। বিভিন্ন flavour বিল্ডের জন্য, পণ্য কনফিগারেশনে versionCode ফিল্ডের মাধ্যমে কাস্টম মান সেট করা যেতে পারে।

মৌলিক কনফিগারেশন

kotlin
// build.gradle.kts — Kotlin DSL
android {
    defaultConfig {
        applicationId "com.example.app"
        versionCode 15
        versionName "2.1.0"
    }

    flavorDimensions +"version"
    productFlavors {
        create("demo") {
            versionCode 1015
        }
        create("full") {
            versionCode 2015
        }
    }
}

Product flavors বিভিন্ন কনফিগারেশনের জন্য আলাদা Version Code ব্যবহারের অনুমতি দেয়: ডেমো সংস্করণ, ট্যাবলেটের জন্য আলাদা সংস্করণ। যদি প্রকল্পে flavors ব্যবহার করা হয়, তবে চূড়ান্ত Version Code ভিত্তি সংখ্যা এবং flavour-নির্দিষ্ট বৃদ্ধি থেকে গঠিত হয়। Google Play প্রতিটি সংমিশ্রণ স্বাধীনভাবে ট্র্যাক করে।

CI এর মাধ্যমে বৃদ্ধির অটোমেশন

CI/CD পাইপলাইনে (GitHub Actions, GitLab CI, Jenkins), Version Code প্রায়ই বিল্ড নম্বর বা তারিখের ভিত্তিতে স্বয়ংক্রিয়ভাবে উৎপন্ন হয়। এটি ম্যানুয়াল আপডেটের সময় মানবিক ত্রুটি দূর করে। স্ক্রিপ্ট build.gradle থেকে বর্তমান Version Code পড়ে, এটি বাড়ায় এবং বিল্ড শুরু করার আগে এটি ফিরিয়ে লেখে।

kotlin
// Version Code এর স্বয়ংক্রিয় বৃদ্ধি
import java.util.Properties
import java.io.FileInputStream

val versionProps = Properties()
versionProps.load(FileInputStream("version.properties"))

val versionCode = versionProps.getProperty("VERSION_CODE").toInt() + 1
versionProps.setProperty("VERSION_CODE", versionCode.toString())

android {
    defaultConfig {
        versionCode = versionCode
    }
}

Google Play এ প্রকাশের জন্য Version Code এর বৈশিষ্ট্য

Google Play এর অ্যাপ্লিকেশন প্রকাশ এবং আপডেট করার সময় Version Code এর জন্য কঠোর নিয়ম রয়েছে। এই নিয়ম লঙ্ঘন করলে বিল্ড প্রত্যাখ্যান বা আপডেট প্রকাশ করতে অক্ষমতা হয়। ডেভেলপারকে জীবনচক্রের সমস্ত পর্যায়ে সীমাবদ্ধতা এবং কোড ব্যবস্থাপনা কৌশল বুঝতে হবে।

একদিক বৃদ্ধির নিয়ম

Google Play সেই APK বা AAB আপলোড করার অনুমতি দেয় না যার Version Code বর্তমানে প্রকাশিত থেকে কম বা সমান। এই নিয়ম প্রতিটি ট্র্যাকের (production, beta, alpha) জন্য স্বাধীনভাবে প্রযোজ্য। যদি production এ Version Code 10 সহ একটি বিল্ড আপলোড করা হয় এবং alpha তে কোড 5 সহ একটি বিল্ড থাকে, তাহলে alpha ট্র্যাক 6, 7, 8 বা 9 এ আপডেট করা যেতে পারে, কিন্তু production 10 এ থাকে।

ট্র্যাকের মধ্যে স্থানান্তর

বিল্ডকে alpha থেকে beta এবং তারপর production এ প্রমোট করার সময়, Version Code প্রতিটি পর্যায়ে বাড়তে হবে। যদি alpha সংস্করণে কোড 10 থাকে, তাহলে beta 11 এবং production 12 ব্যবহার করতে পারে। আপনি production এ কোড 10 সহ একটি বিল্ড প্রকাশ করতে পারবেন না যদি alpha ইতিমধ্যে 10 ব্যবহার করছে, এমনকি যদি production এখনও এটি না দেখে থাকে।

  • একদিক বৃদ্ধি — একটি ট্র্যাকের প্রতিটি বিল্ডের Version Code একই ট্র্যাকের আগেরটির চেয়ে বেশি
  • ক্রস-ট্র্যাক সচেতনতা — ট্র্যাকের মধ্যে প্রমোট করার সময়, Version Code ক্রমিকভাবে বৃদ্ধি পায়
  • অভ্যন্তরীণ পরীক্ষা — অভ্যন্তরীণ পরীক্ষার ট্র্যাক একই একদিকতা নিয়ম ব্যবহার করে
  • একাধিক APK — পুরানো প্রকাশ ফর্ম্যাটে প্রতিটি APK এর জন্য অনন্য Version Code প্রয়োজন ছিল

Version Code নির্দিষ্ট করতে ত্রুটি

সবচেয়ে সাধারণ ত্রুটি হল একই ট্র্যাকে আপলোড করা বিভিন্ন বিল্ডে Version Code এর মিল। Google Play APK_VERSION_CODE_ALREADY_EXISTS ত্রুটি দেয়। আরেকটি ত্রুটি হল সর্বোচ্চ মান 2100000000 অতিক্রম করা, যা কম্পাইলেশন ব্যর্থতার দিকে নিয়ে যায়। দ্বন্দ্ব এড়াতে, আপনার CI সিস্টেমে বিল্ড নম্বর বা বিল্ড তারিখের সাথে সংযুক্ত স্বয়ংক্রিয় কোড জেনারেশন ব্যবহার করুন।

ডেভেলপাররা প্রায়ই বিকল্প ট্র্যাকের জন্য hotfix রিলিজ তৈরি করার সময় Version Code না বাড়ানোর ভুলও করে। যদি production এ কোড 15 থাকে এবং alpha ট্র্যাক 14 এ থেকে যায়, তাহলে alpha কে production এ প্রমোট করার সময়, Google Play বিল্ডটি প্রত্যাখ্যান করবে কারণ এর কোড বর্তমান production কোড থেকে কম। সমস্ত ট্র্যাকে একসাথে কোডের একদিকতা পর্যবেক্ষণ করুন — এর জন্য একটি একক version.properties ফাইল ব্যবহার করা সুবিধাজনক যেখান থেকে সমস্ত ট্র্যাক বর্তমান মান পড়ে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমি কি বর্তমানের চেয়ে কম Version Code দিয়ে আপডেট প্রকাশ করতে পারি?

না, Google Play একই ট্র্যাকে বর্তমানে প্রকাশিত থেকে কম বা সমান Version Code সহ একটি বিল্ড আপলোড করার অনুমতি দেয় না। সিস্টেম আপলোডের সময় কোড পরীক্ষা করে এবং যদি একদিক বৃদ্ধির নিয়ম লঙ্ঘিত হয় তবে ত্রুটি ফেরত দেয়। alpha এবং beta ট্র্যাকের জন্যও একই নীতি স্বাধীনভাবে প্রযোজ্য।

প্রথম অ্যাপ্লিকেশন প্রকাশের জন্য আমার কোন Version Code নির্দিষ্ট করা উচিত?

প্রথম প্রকাশের জন্য, আপনি Version Code 1 নির্দিষ্ট করতে পারেন। Google Play একটি ধনাত্মক পূর্ণসংখ্যা ছাড়া কোনো ন্যূনতম সীমা নির্ধারণ করে না। 1 দিয়ে শুরু করার এবং প্রতিটি পরবর্তী বিল্ডের সাথে 1 বাড়ানোর সুপারিশ করা হয়। আপনি যদি timestamp ফর্ম্যাট ব্যবহার করেন, তবে প্রথম বিল্ড 20260701 হতে পারে।

Google Play এ Version Code কীভাবে Version Name এর সাথে সম্পর্কিত?

Version Code একটি অভ্যন্তরীণ মেশিন শনাক্তকারী যা সিস্টেম তুলনার জন্য ব্যবহার করে। Version Name একটি ব্যবহারকারী-মুখী লেবেল যা Google Play এবং ডিভাইসে প্রদর্শিত হয়। ব্যবহারকারী Version Name (উদাহরণস্বরূপ, 2.0.0) দেখে, যখন Google Play একটি আপডেট প্রয়োজন কিনা তা নির্ধারণ করতে Version Code ব্যবহার করে।

Version Code এর সর্বোচ্চ মান অতিক্রম করলে কী হবে?

Version Code এর সর্বোচ্চ মান 2100000000 (Integer.MAX_VALUE)। অতিক্রম করলে, কম্পাইলার ত্রুটি দেবে কারণ ফিল্ডটি int টাইপের। প্রচুর সংখ্যক বিল্ড সহ প্রকল্পের জন্য (দৈনিক রিলিজ সহ CI/CD), timestamp ফর্ম্যাট ব্যবহার করার বা major সংস্করণের শুরুতে কাউন্টার রিসেট করার সুপারিশ করা হয়।

Version Code কি A/B পরীক্ষার জন্য ব্যবহার করা যেতে পারে?

Version Code সরাসরি A/B পরীক্ষার জন্য ব্যবহৃত হয় না, তবে এটি পরোক্ষভাবে এটিকে প্রভাবিত করে। Google Play একটি নির্দিষ্ট বিল্ডের জন্য ব্যবহারকারীর শতাংশ অনুযায়ী পর্যায়ক্রমিক রোলআউট (staged rollout) কনফিগার করার অনুমতি দেয়। Version Code বিল্ড শনাক্ত করে, যখন A/B পরীক্ষাগুলি Firebase Remote Config বা অনুরূপ পরিষেবার মাধ্যমে কনফিগার করা হয়।

সারাংশ

  • Version Code — একটি পূর্ণসংখ্যা যা Android অ্যাপ্লিকেশনের প্রতিটি বিল্ডকে স্বতন্ত্রভাবে শনাক্ত করে
  • Google Play একটি অ্যাপ্লিকেশন আপডেট প্রয়োজন কিনা তা নির্ধারণ করতে Version Code ব্যবহার করে
  • বৃদ্ধির নিয়ম — প্রতিটি নতুন বিল্ডের কোড একই ট্র্যাকের আগেরটির চেয়ে কঠোরভাবে বেশি হতে হবে
  • মান সীমা — 1 থেকে 2100000000 (Integer.MAX_VALUE)
  • Version Name — ব্যবহারকারী-মুখী স্ট্রিং লেবেল, আপডেট প্রক্রিয়াকে প্রভাবিত করে না
  • অটোমেশন — CI/CD সিস্টেম বিল্ড নম্বর বা timestamp থেকে Version Code উৎপন্ন করতে পারে
  • সুপারিশ — প্রকাশের আগে বৃদ্ধির কৌশল বেছে নিন এবং সম্পূর্ণ জীবনচক্র জুড়ে এটি মেনে চলুন

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন