Version Code: یہ کیا ہے، عددی شناخت کنندہ اور اپ ڈیٹس

مصنف: IT Sectr اشاعت: 2026-04-17 مطالعے کا وقت: 8 منٹ

Version Code Android ڈویلپمنٹ میں ایک مثبت عدد ہے جو ہر نئی ایپلیکیشن بلڈ کو منفرد طور پر شناخت کرتا ہے۔ Google Play اور Android سسٹم اس بات کا تعین کرنے کے لیے Version Code استعمال کرتے ہیں کہ آیا اپ ڈیٹ ضروری ہے: اگر نئے بلڈ کا کوڈ انسٹال شدہ ورژن سے بڑا ہے تو اپ ڈیٹ کا عمل شروع ہو جاتا ہے۔ Android ڈویلپر دستاویزات کے مطابق، 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 پائپ لائنز کے لیے، اکثر ٹائم اسٹیمپ یا بلڈ نمبر استعمال کیا جاتا ہے: 2026070301 (سال-مہینہ-دن-نمبر)。 یہ ضروری ہے کہ کوڈ یکساں طور پر بڑھے اور مختلف بلڈز اور Google Play ٹریکس کے درمیان دہرایا نہ جائے۔

  • یکساں اضافہ — ریلیز برانچ میں ہر commit پر 1 کا اضافہ
  • ٹائم اسٹیمپ فارمیٹ — روزانہ بلڈز کے لیے 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 وہی رہتا ہے۔ مثال کے طور پر، اگر ڈویلپر فعالیت تبدیل کیے بغیر ہاٹ فکس بلڈ میں ایک سنگین بگ ٹھیک کرتا ہے۔ Version Name 2.0.0 رہتا ہے، جبکہ Version Code 5 سے 6 میں بدل جاتا ہے۔ Google Play اس طرح کی اپ ڈیٹ کو درست طریقے سے سنبھالے گا۔

groovy
// مثال: version name تبدیل نہیں ہوتا، کوڈ بڑھتا ہے
android {
    defaultConfig {
        versionCode 6  // تھا 5 — نئی خصوصیات کے بغیر ہاٹ فکس
        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 بلاک کا حصہ ہے۔ مختلف flavor بلڈز کے لیے، پروڈکٹ کنفیگریشن میں 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 بنیادی نمبر اور flavor-specific اضافے سے بنتا ہے۔ 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 سسٹم میں بلڈ نمبر یا بلڈ تاریخ سے منسلک خودکار کوڈ جنریشن استعمال کریں۔

ڈویلپرز اکثر متبادل ٹریک کے لیے ہاٹ فکس ریلیز بناتے وقت 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 بڑھانے کی سفارش کی جاتی ہے۔ اگر آپ ٹائم اسٹیمپ فارمیٹ استعمال کرتے ہیں، تو پہلا بلڈ 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) کے لیے، ٹائم اسٹیمپ فارمیٹ استعمال کرنے یا میجر ورژن کے شروع میں کاؤنٹر ری سیٹ کرنے کی سفارش کی جاتی ہے۔

کیا 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 سسٹم بلڈ نمبر یا ٹائم اسٹیمپ سے Version Code تیار کر سکتے ہیں
  • سفارش — اشاعت سے پہلے اضافے کی حکمت عملی منتخب کریں اور پوری زندگی کے چکر میں اس پر قائم رہیں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں