Apple ने खेतों को फिर से व्यवस्थित / पुनर्निर्मित किया।
आगे बढ़ते हुए, यदि आप अपने अनुप्रयोग लक्ष्य के लिए जानकारी टैब पर देखते हैं, तो आपको अपने बिल्ड के रूप में "बंडल संस्करण स्ट्रिंग, लघु" का उपयोग करना चाहिए (जैसे, 3.4.0) और "बंडल संस्करण" (जैसे, 500 या 1A500) )। यदि आप उन दोनों को नहीं देखते हैं, तो आप उन्हें जोड़ सकते हैं। वे सारांश टैब पर उचित संस्करण का निर्माण करेंगे और टेक्स्टबॉक्स का निर्माण करेंगे; वे समान मूल्य हैं।
जानकारी टैब देखते समय, यदि आप राइट-क्लिक करते हैं और Show Raw Keys / Values का चयन करते हैं , तो आप देखेंगे कि वास्तविक नाम CFBundleShortVersionString
(संस्करण) और CFBundleVersion
(Build) हैं।
संस्करण का आमतौर पर उपयोग किया जाता है कि आप Xcode 3 के साथ इसका उपयोग कैसे करते हैं। मुझे यकीन नहीं है कि आप किस स्तर पर संस्करण / बिल्ड अंतर के बारे में पूछ रहे हैं, इसलिए मैं इसका उत्तर दार्शनिक रूप से दूंगा।
सभी प्रकार की योजनाएं हैं, लेकिन एक लोकप्रिय है:
{MajorVersion}। {MinorVersion}। {} संशोधन
- प्रमुख संस्करण - प्रमुख परिवर्तन, नया स्वरूप, और कार्यक्षमता परिवर्तन
- लघु संस्करण - मामूली सुधार, कार्यक्षमता में परिवर्धन
- संशोधन - बग-फिक्स के लिए एक पैच नंबर
फिर बिल्ड का उपयोग किसी रिलीज़ के लिए या संपूर्ण उत्पाद जीवनकाल के लिए बिल्ड की कुल संख्या को इंगित करने के लिए अलग से किया जाता है।
कई डेवलपर्स 0 पर बिल्ड नंबर शुरू करते हैं, और हर बार जब वे निर्माण करते हैं तो वे संख्या को एक से बढ़ाते हैं, हमेशा के लिए बढ़ाते हैं। मेरी परियोजनाओं में, मेरे पास एक स्क्रिप्ट है जो मेरे द्वारा निर्मित हर बार स्वचालित रूप से बिल्ड नंबर बढ़ाती है। उस के लिए निर्देश देखें।
- रिलीज़ 1.0.0 का निर्माण 542 हो सकता है। इसे 1.0.0 रिलीज़ होने में 542 बिल्ड्स लगे।
- रिलीज 1.0.1 578 का निर्माण हो सकता है।
- रिलीज 1.1.0 694 का निर्माण हो सकता है।
- रिलीज 2.0.0 949 का निर्माण हो सकता है।
अन्य डेवलपर्स, जिनमें Apple भी शामिल है, के पास बिल्ड नंबर है जिसमें रिलीज के लिए एक प्रमुख संस्करण + मामूली संस्करण + बिल्ड शामिल हैं। ये वास्तविक सॉफ़्टवेयर संस्करण संख्याएं हैं, जैसा कि विपणन के लिए उपयोग किए जाने वाले मूल्यों के विपरीत है।
यदि आप Xcode मेनू> Xcode के बारे में जाते हैं , तो आपको संस्करण और बिल्ड नंबर दिखाई देंगे। यदि आप अधिक जानकारी ... बटन दबाते हैं, तो आपको विभिन्न संस्करणों का एक गुच्छा दिखाई देगा। चूँकि अधिक जानकारी ... बटन को Xcode 5 में हटा दिया गया था, इसलिए यह जानकारी सिस्टम मेनू ऐप के सॉफ़्टवेयर> डेवलपर अनुभाग से भी उपलब्ध है, जो Apple मेनू> इस बारे में > मैक सिस्टम रिपोर्ट ... को खोलकर उपलब्ध है ।
उदाहरण के लिए, Xcode 4.2 (4C139)। मार्केटिंग संस्करण ४.२ बिल्ड बिल्ड प्रमुख संस्करण ४, बिल्ड मामूली संस्करण सी, और बिल्ड नंबर १३ ९ है। अगली रिलीज़ (संभवत: ४.३) संभवतः रिलीज़ ४ डी का निर्माण होगा, और बिल्ड नंबर ० से शुरू होगा और वहाँ से वेतन वृद्धि होगी।
IPhone सिम्युलेटर संस्करण / बिल्ड नंबर उसी तरह हैं, जैसे कि iPhones, Macs, आदि।
- 3.2: (7W367a)
- 4.0: (8A400)
- 4.1: (8B117)
- 4.2: (8C134)
- 4.3: (8H7)
अद्यतन करें : अनुरोध के अनुसार, यहां एक स्क्रिप्ट बनाने के लिए चरण हैं जो हर बार चलने वाले बिल्ड नंबर को पढ़ने के लिए आपके एप्लिकेशन को Xcode में बनाते हैं, इसे बढ़ाते हैं, और इसे ऐप की {App}-Info.plist
फ़ाइल में वापस लिखते हैं । यदि आप अपना संस्करण लिखना चाहते हैं, तो अतिरिक्त, अतिरिक्त चरण हैं / अपनी Settings.bundle/Root*.plist
फ़ाइल के लिए संख्याएँ बनाएँ ।
यह यहाँ कैसे-कैसे लेख से विस्तारित है ।
Xcode 4.2 में - 5.0:
- अपने Xcode प्रोजेक्ट को लोड करें।
- बाएं हाथ के फलक में, पदानुक्रम के शीर्ष पर अपनी परियोजना पर क्लिक करें। यह प्रोजेक्ट सेटिंग्स एडिटर को लोड करेगा।
- केंद्र विंडो फलक के बाईं ओर, TARGETS शीर्षक के अंतर्गत अपने एप्लिकेशन पर क्लिक करें । आपको प्रत्येक प्रोजेक्ट लक्ष्य के लिए इस सेटअप को कॉन्फ़िगर करने की आवश्यकता होगी।
- बिल्ड चरणों का चयन करें टैब।
- Xcode 4 में, नीचे दाईं ओर, Add Build चरण बटन पर क्लिक करें और Add Script जोड़ें चुनें ।
- Xcode 5 में, संपादक मेनू> बिल्ड चरण जोड़ें > रन स्क्रिप्ट स्क्रिप्ट चरण जोड़ें का चयन करें ।
- कॉपी बंडल संसाधन चरण (जब app-info.plist फ़ाइल आपके ऐप के साथ बंडल हो जाएगी) से ठीक पहले इसे स्थानांतरित करने के लिए नए रन स्क्रिप्ट चरण को खींचें और छोड़ें ।
- नए रन स्क्रिप्ट चरण में, शैल सेट करें
/bin/bash
:।
पूर्णांक बिल्ड संख्याओं के लिए स्क्रिप्ट क्षेत्र में निम्नलिखित को कॉपी और पेस्ट करें:
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
जैसा कि @Bdebeez ने बताया, Apple जेनरिक वर्जन टूल ( agvtool
) भी उपलब्ध है। यदि आप इसके बजाय इसका उपयोग करना पसंद करते हैं, तो पहले बदलने के लिए कुछ चीजें हैं:
- का चयन करें सेटिंग्स बिल्ड टैब।
- वर्जनिंग सेक्शन के तहत , वर्तमान प्रोजेक्ट संस्करण को उस प्रारंभिक बिल्ड नंबर पर सेट करें जिसका आप उपयोग करना चाहते हैं, जैसे, 1 ।
- बिल्ड चरण टैब पर वापस , कॉपी बंड संसाधन चरण के बाद अपने रन स्क्रिप्ट चरण को ड्रैग-एंड-ड्रॉप करें और रेस बिल्ड से बचने की कोशिश करें जब दोनों स्रोत बिल्ड को शामिल करने और अपडेट करने की कोशिश करें जिसमें आपका बिल्ड नंबर शामिल हो।
ध्यान दें कि जिस agvtool
विधि के साथ आप अभी भी समय-समय पर विफल हो सकते हैं / बिना किसी त्रुटि के रद्द हो जाती है। इस कारण से, मैं agvtool
इस स्क्रिप्ट के साथ उपयोग करने की सलाह नहीं देता ।
फिर भी, अपने रन स्क्रिप्ट चरण में, आप निम्न स्क्रिप्ट का उपयोग कर सकते हैं:
"${DEVELOPER_BIN_DIR}/agvtool" next-version -all
next-version
तर्क में जुड़ जाता बिल्ड नंबर ( bump
भी एक ही बात के लिए एक उपनाम है), और -all
अद्यतन Info.plist
नए बिल्ड नंबर के साथ।
और अगर आपके पास सेटिंग्स बंडल है जहां आप संस्करण और बिल्ड दिखाते हैं, तो आप संस्करण को अद्यतन करने और बनाने के लिए स्क्रिप्ट के अंत में निम्नलिखित जोड़ सकते हैं। नोट: PreferenceSpecifiers
अपनी सेटिंग से मिलान करने के लिए मान बदलें । PreferenceSpecifiers:2
इसका मतलब यह है कि PreferenceSpecifiers
आपकी प्लिस्ट फ़ाइल में सरणी के नीचे इंडेक्स 2 में आइटम देखें , इसलिए 0-आधारित इंडेक्स के लिए, यह एरे में 3 जी वरीयता सेटिंग है।
productVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
यदि आप सीधे agvtool
पढ़ने के बजाय उपयोग कर रहे Info.plist
हैं, तो आप इसके बजाय अपनी स्क्रिप्ट में निम्न जोड़ सकते हैं:
buildNumber=$("${DEVELOPER_BIN_DIR}/agvtool" what-version -terse)
productVersion=$("${DEVELOPER_BIN_DIR}/agvtool" what-marketing-version -terse1)
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root.plist
और अगर आपके पास iPad और iPhone के लिए एक सार्वभौमिक ऐप है, तो आप iPhone फ़ाइल के लिए सेटिंग्स भी सेट कर सकते हैं:
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:2:DefaultValue $buildNumber" Settings.bundle/Root~iphone.plist
/usr/libexec/PlistBuddy -c "Set PreferenceSpecifiers:1:DefaultValue $productVersion" Settings.bundle/Root~iphone.plist