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 एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें