Version Name वह वर्जन स्ट्रिंग है जिसे उपयोगकर्ता स्टोर और डिवाइस पर देखता है। Build Number के विपरीत, इस पैरामीटर का सिमैंटिक अर्थ होता है और यह बदलावों के महत्व को दर्शाता है। Android Developers, 2025 के अनुसार, Version Name का सही उपयोग उपयोगकर्ताओं को अपडेट की प्रासंगिकता समझने और डेवलपमेंट प्रक्रिया पर भरोसा करने में मदद करता है।
मुख्य बिंदु
Version Name एक सिमैंटिक स्ट्रिंग है जो उपयोगकर्ता के लिए एप्लिकेशन रिलीज़ की पहचान करती है। तकनीकी बिल्ड पहचानकर्ताओं के विपरीत, यह पैरामीटर सार्थक जानकारी रखता है: उपयोगकर्ता मूल्यांकन कर सकता है कि नया अपडेट पिछले से कितना अलग है।
Version Name Google Play और App Store पर एप्लिकेशन कार्ड में, डिवाइस पर "ऐप के बारे में" अनुभाग में, और सिस्टम अपडेट डायलॉग में प्रदर्शित होता है। डेवलपर्स रिलीज़ वर्जन बनाने से पहले इसे प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों में निर्दिष्ट करते हैं।
Semantic Versioning 2.0 (2023) के अनुसार, Major.Minor.Patch प्रारूप 78% मोबाइल एप्लिकेशन में उपयोग किया जाता है। मेजर वर्जन असंगत API परिवर्तनों के साथ बदलता है, माइनर वर्जन नई कार्यक्षमता जोड़ने के साथ, और पैच बग फिक्स के साथ।
उपयोगकर्ता के साथ संवाद करने के लिए Version Name का उपयोग करें: उन्हें तुरंत समझना चाहिए कि पेश किया गया अपडेट कितना महत्वपूर्ण है — मेजर, माइनर या सुधारात्मक।
सिमैंटिक वर्जन में तीन संख्याएँ होती हैं जो बिंदुओं से अलग होती हैं: Major.Minor.Patch। इनमें से प्रत्येक घटक एप्लिकेशन में परिवर्तनों के एक विशिष्ट स्तर के लिए जिम्मेदार है।
मेजर वर्जन (Major) उन आमूल परिवर्तनों के साथ बढ़ता है जो बैकवर्ड कम्पैटिबिलिटी को तोड़ते हैं। माइनर वर्जन (Minor) मौजूदा कार्यक्षमता को तोड़े बिना नई कार्यक्षमता जोड़ता है। पैच (Patch) में केवल बग फिक्स होते हैं।
उदाहरण के लिए, वर्जन 3.2.1 का अर्थ है: तीसरा मेजर वर्जन, दूसरा माइनर अपडेट, पहला पैच। यह प्रणाली डेवलपर्स और उपयोगकर्ताओं दोनों के लिए समझने योग्य है।
Version Name कई प्रमुख स्थानों पर उपयोगकर्ता को दिखाई देता है। ऐप स्टोर में, यह एप्लिकेशन कार्ड हेडर और अपडेट सूची में दिखाई देता है। डिवाइस पर, यह "ऐप के बारे में" अनुभाग में सिस्टम सेटिंग्स में दिखाई देता है।
Google Play पर, Version Name एप्लिकेशन नाम के नीचे दिखाया जाता है और उपयोगकर्ता के अपडेट करने के निर्णय को प्रभावित करता है। App Store में, वर्जन स्ट्रिंग एप्लिकेशन पेज देखते समय उसी स्थान पर प्रदर्शित होती है।
Apptentive (2024) शोध के अनुसार, 67% उपयोगकर्ता अपडेट करने से पहले ऐप वर्जन की जाँच करते हैं, और स्पष्ट सिमैंटिक्स इंस्टॉल कन्वर्ज़न को 23% तक बढ़ाते हैं।
Android पर, Version Name build.gradle फ़ाइल (मॉड्यूल स्तर) में versionName पैरामीटर द्वारा सेट किया जाता है। यह पैरामीटर एक स्ट्रिंग है और इसमें बिंदु, हाइफ़न और अक्षर सहित कोई भी वर्ण हो सकते हैं।
पैरामीटर अनिवार्य versionCode पैरामीटर के साथ android.defaultConfig ब्लॉक के अंदर घोषित किया जाता है। Android स्ट्रिंग प्रारूप पर कोई प्रतिबंध नहीं लगाता है, लेकिन Google Play सिमैंटिक प्रारूप का उपयोग करने की अनुशंसा करता है।
Android Developers (2025) के अनुसार, Google Play स्टोर इंटरफ़ेस में प्रदर्शन के लिए versionName का उपयोग करता है लेकिन प्रोग्रामेटिक रूप से इसकी सामग्री का विश्लेषण नहीं करता — केवल versionCode अपडेट तर्क को प्रभावित करता है।
Version Name को Major.Minor.Patch प्रारूप में निर्दिष्ट करें और असंदिग्ध रिलीज़ पहचान के लिए इसे वर्जन कंट्रोल सिस्टम में टैग के साथ सिंक्रोनाइज़ करें।
Gradle build.gradle में स्थिर रूप से या बिल्ड स्क्रिप्ट के माध्यम से गतिशील रूप से versionName सेट करने की अनुमति देता है। गतिशील जनरेशन स्वचालित रात्रिकालीन बिल्ड और CI/CD पाइपलाइनों के लिए उपयोगी है।
build.gradle में, versionName बनाने के लिए पर्यावरण चर, कमांड-लाइन पैरामीटर या शेल स्क्रिप्ट कॉल का उपयोग किया जा सकता है। एक विशिष्ट दृष्टिकोण version.properties फ़ाइल से वर्जन पढ़ना है।
यह लचीलापन टीमों को वर्जनिंग प्रक्रिया को स्वचालित करने और रिलीज़ तैयारी के दौरान मानवीय त्रुटि को समाप्त करने की अनुमति देता है।
iOS पर, Version Name Info.plist फ़ाइल में CFBundleShortVersionString कुंजी द्वारा सेट किया जाता है। App Store पर एप्लिकेशन प्रकाशित करने के लिए यह एक अनिवार्य पैरामीटर है, और यह सख्ती से स्ट्रिंग के रूप में टाइप किया जाता है।
Android के विपरीत, App Store Connect Version Name प्रारूप की जाँच करता है और इसे बिंदुओं से अलग संख्याओं के टेम्पलेट से मेल खाने की आवश्यकता होती है। अधिकतम स्ट्रिंग लंबाई 18 वर्ण है, और प्रत्येक वर्जन घटक 255 से अधिक नहीं हो सकता।
Apple Developer Documentation (2025) के अनुसार, CFBundleShortVersionString का उपयोग App Store द्वारा स्टोर इंटरफ़ेस में और उपयोगकर्ता के डिवाइस पर सिस्टम डायलॉग में वर्जन प्रदर्शित करने के लिए किया जाता है।
App Store Connect में बिल्ड अपलोड करते समय, सुनिश्चित करें कि Version Name मार्केटिंग सामग्री में निर्दिष्ट वर्जन से मेल खाता है — यह उपयोगकर्ताओं के साथ संचार को सरल बनाता है।
Xcode टार्गेट सेटिंग्स में Version Name बदलने के लिए एक ग्राफिकल इंटरफ़ेस प्रदान करता है। "Marketing Version" फ़ील्ड Identity के अंतर्गत General टैब पर स्थित है। परिवर्तन स्वचालित रूप से Info.plist में सहेजे जाते हैं।
ऑटोमेशन के लिए, Xcode Build Phases में बिल्ड स्क्रिप्ट या agvtool (Apple Generic Version Tool) उपयोगिता का उपयोग किया जा सकता है। agvtool कमांड लाइन से वर्जन प्रबंधित करने की अनुमति देता है और CI/CD में एकीकृत होता है।
यह दृष्टिकोण विशेष रूप से एप्लिकेशन के स्वचालित बिल्ड और डिलीवरी के लिए fastlane या Jenkins का उपयोग करते समय सुविधाजनक है।
Version Name और Build Number डेवलपमेंट प्रक्रिया में अलग-अलग कार्य करते हैं। Version Name एक उपयोगकर्ता-सामना वाली स्ट्रिंग है, जबकि Build Number एक आंतरिक संख्यात्मक पहचानकर्ता है जो प्रत्येक बिल्ड को विशिष्ट रूप से पहचानता है।
Build Number (Android में versionCode, iOS में CFBundleVersion) प्रत्येक नए बिल्ड के साथ बढ़ना चाहिए और इसका उपयोग ऐप स्टोर द्वारा यह निर्धारित करने के लिए किया जाता है कि कौन सा वर्जन नया है। Version Name एक ही वर्जन के कई बिल्ड में अपरिवर्तित रह सकता है।
Google Play Policy (2025) के अनुसार, समान versionCode वाले दो एप्लिकेशन एक ही वर्जन माने जाते हैं — versionCode प्रत्येक APK के लिए अद्वितीय होना चाहिए। Version Name इस जाँच में भाग नहीं लेता।
प्रत्येक बिल्ड के साथ हमेशा Build Number बढ़ाएँ और Version Name को केवल तभी बदलें जब कार्यक्षमता बदलती है — यह प्रकाशन के दौरान विरोध को रोकता है।
Version Name चुनना टीम की वर्जनिंग रणनीति पर निर्भर करता है। सबसे सामान्य दृष्टिकोण सिमैंटिक वर्जनिंग (SemVer) है, लेकिन वैकल्पिक योजनाएँ भी मौजूद हैं, जैसे कैलेंडर वर्जनिंग या रिलीज़-डेट वर्जनिंग।
Semantic Versioning 2.0 वैकल्पिक प्री-रिलीज़ प्रत्ययों के साथ Major.Minor.Patch प्रारूप की अनुशंसा करता है। मोबाइल एप्लिकेशन के लिए, Major.Minor योजना भी लोकप्रिय है, जहाँ धारणा को सरल बनाने के लिए पैच वर्जन छोड़ दिया जाता है।
कैलेंडर वर्जनिंग (CalVer) रिलीज़ तिथि को वर्जन नंबर के रूप में उपयोग करती है — उदाहरण के लिए, 25.06 (वर्ष और महीना)। यह दृष्टिकोण बार-बार रिलीज़ वाले एप्लिकेशन के लिए सुविधाजनक है जहाँ सिमैंटिक्स का कोई अर्थ नहीं है।
सिमैंटिक वर्जनिंग सार्वजनिक API वाले एप्लिकेशन के लिए उपयुक्त है जहाँ बैकवर्ड कम्पैटिबिलिटी महत्वपूर्ण है। उपयोगकर्ता और एकीकरणकर्ता समझते हैं कि अपडेट के साथ क्या बदलाव अपेक्षित हैं।
कैलेंडर वर्जनिंग उन एप्लिकेशन के लिए चुनी जाती है जहाँ उपयोगकर्ता के लिए रिलीज़ की ताज़गी परिवर्तनों के दायरे से अधिक महत्वपूर्ण है। उदाहरण के लिए, समाचार एग्रीगेटर या मौसम एप्लिकेशन।
हाइब्रिड योजना दोनों दृष्टिकोणों को जोड़ती है: Major.Minor.RC, जहाँ RC एक विशिष्ट रिलीज़ कैंडिडेट के लिए बिल्ड नंबर है। यह योजना सक्रिय बीटा परीक्षण के दौरान सुविधाजनक है।
नीचे कोड उदाहरण दिखाते हैं कि Android और iOS पर Version Name कैसे सेट करें। Android के लिए Gradle का उपयोग किया जाता है, iOS के लिए — agvtool के साथ Xcode Build Settings।
Android में, वर्जन app/build.gradle फ़ाइल में defaultConfig ब्लॉक के अंदर सेट किया जाता है। versionName पैरामीटर एक स्ट्रिंग मान स्वीकार करता है।
android {
defaultConfig {
versionCode 3
versionName "2.1.0"
}
}
versionName को बाहरी फ़ाइल से भी पढ़ा जा सकता है या Gradle Script का उपयोग करके गतिशील रूप से उत्पन्न किया जा सकता है।
डायनामिक वर्जन CI/CD सिस्टम के पर्यावरण चर से बनता है। यह सुनिश्चित करता है कि प्रत्येक बिल्ड को सही वर्जन नंबर मिलता है।
def getVersionName = {
return System.getenv("VERSION_NAME") ?:
"2.1.0"
}
android {
defaultConfig {
versionName getVersionName()
}
}
यह दृष्टिकोण वर्जनिंग को स्वचालित करता है और बिल्ड और रिपॉजिटरी टैग के बीच बेमेल के जोखिम को समाप्त करता है।
iOS में, वर्जन को Xcode के माध्यम से या agvtool का उपयोग करके कमांड लाइन के माध्यम से सेट किया जा सकता है।
# मार्केटिंग वर्जन सेट करना
xcrun agvtool new-marketing-version 2.1.0
# वर्तमान वर्जन पढ़ना
xcrun agvtool what-marketing-version
agvtool स्वचालित रूप से Info.plist को अपडेट करता है और Xcode प्रोजेक्ट में सभी टार्गेट में वर्जन को सिंक्रोनाइज़ करता है।
अक्सर पूछे जाने वाले प्रश्न
Version Name एक उपयोगकर्ता-सामना वाली वर्जन स्ट्रिंग है जो ऐप स्टोर में प्रदर्शित होती है। Build Number एक आंतरिक संख्यात्मक बिल्ड पहचानकर्ता है जो प्रत्येक बिल्ड को विशिष्ट रूप से पहचानता है और स्टोर द्वारा वर्जन की नवीनता निर्धारित करने के लिए उपयोग किया जाता है।
Android में, versionName में अक्षर और हाइफ़न सहित कोई भी वर्ण हो सकते हैं। iOS में, CFBundleShortVersionString में बिंदुओं से अलग संख्याएँ होनी चाहिए, हालाँकि प्री-रिलीज़ वर्जन के लिए अक्षर प्रत्ययों की अनुमति है।
CI/CD टूल — GitHub Actions, GitLab CI या Jenkins का उपयोग करें। बिल्ड स्क्रिप्ट फ़ाइल से वर्तमान वर्जन पढ़ती है, आवश्यक घटक बढ़ाती है, और रिलीज़ बनाने से पहले नया मान लिखती है।
स्टोर नए बिल्ड को स्वीकार करेगा यदि Build Number बढ़ गया है। हालाँकि, उपयोगकर्ता वर्जन में बदलाव नहीं देखेंगे, जिससे भ्रम हो सकता है। नई कार्यक्षमता के प्रत्येक रिलीज़ के साथ Version Name बदलने की अनुशंसा की जाती है।
Major.Minor.Patch प्रारूप अधिकांश परियोजनाओं के लिए इष्टतम विकल्प है। यह उपयोगकर्ताओं और डेवलपर्स के लिए समझने योग्य है, SemVer मानक का अनुपालन करता है, और सभी ऐप स्टोर द्वारा समर्थित है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें