2014-04-10 12 views
11

में एक्सकोड बॉट एकीकरण संख्या कैसे जोड़ें I सेटिंग्स.बंडल फ़ाइल के साथ एक आईपैड एप्लिकेशन बना रहा हूं। मैं एप्लिकेशन संस्करण संख्या और एक्सकोड बॉट एकीकरण संख्या प्रदर्शित करने के लिए बिल्ड स्क्रिप्ट लिख रहा हूं (बंडल बिल्ड नंबर नहीं)। मैंने वेब की खोज की है और कोई समाधान नहीं मिला। यहाँ मैं अभी तक क्या मिला है:बिल्ड स्क्रिप्ट

-- Add the app version number 
cd $PROJECT_DIR 
cd "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app" 

RELEASE_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Info.plist) 
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue $RELEASE_VERSION" Settings.bundle/Root.plist 

-- Add the build version number 
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" Info.plist) 
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue $BUILD_NUMBER" Settings.bundle/Root.plist 

बिल्ड संस्करण संख्या में, मैं xcode बॉट एकता संख्या के साथ CFBundleVersion को बदलने के लिए चाहते हैं।

उत्तर

15

मैं इस एक शैल स्क्रिप्ट बनाएँ चरण मेरी Xcode परियोजना में का उपयोग कर कार्यान्वित किया। मेरे मामले में, मैंने अपने निर्मित उत्पाद के आंतरिक संस्करण को सेट करने के लिए एकीकरण संख्या का उपयोग किया। मेरे स्क्रिप्ट इस तरह दिखता है:

if [ "the$XCS_INTEGRATION_NUMBER" == "the" ]; then 
    echo "Not an integration build…" 
    xcrun agvtool new-version "10.13" 
else 
    echo "Setting integration build number: $XCS_INTEGRATION_NUMBER" 
    xcrun agvtool new-version "$XCS_INTEGRATION_NUMBER" 
fi 

ध्यान दें कि XCS_INTEGRATION_NUMBERXcode सर्वर निर्माण वातावरण में डिफ़ॉल्ट रूप से मौजूद है। यदि आप एकीकरण निर्माण (इस स्क्रिप्ट के प्रयोजनों के लिए) को अनुकरण करना चाहते हैं, तो आप इसे कस्टम चर के रूप में अपनी बिल्ड सेटिंग्स में जोड़ सकते हैं।

1

मैंने हाल ही में एक ही मुद्दे पर ठोकर खाई। Xcode बॉट के नवीनतम एकीकरण संख्या के बारे में जानकारी प्राप्त करने की एक बहुत ही व्यावहारिक लेकिन बदसूरत तरह से चलाता है वहाँ है:

sudo grep -r "integration =" /Library/Server/Xcode/Logs/xcsbuildd.log | tail -1 | cut -d'=' -f 2| cut -d';' -f 1 |tr -d '\040\011\012\015' 

मैं भी आदेश में इस लक्ष्य को पूरा करने का एक और अधिक एकीकृत और कम hacky रास्ता खोजने के लिए एक stackoverflow सवाल बनाया : Register for messages from collabd like XCSBuildService to receive Xcode Bots integration number

लेकिन शायद ऊपर वर्णित xcsbuildd.log को पार्स करने का तरीका आपके उद्देश्यों के लिए पर्याप्त है।

+0

यह मेरे लिए काम नहीं करता है। मुझे हमेशा एक खाली परिणाम मिल रहा है – iDev

5

मैं बस से पहले संकलित सूत्रों का कहना है कदम चरणबिल्ड मेरी लक्ष्यों को (+) एक भागो स्क्रिप्ट गयी। बिल्ड नंबर के रूप में एकीकरण संख्या सेट करने के लिए यह एक पंक्ति स्क्रिप्ट मेरे लिए काम करती है। धन्यवाद कैलिन, मैं बस चीजों को थोड़ा सा सरल बनाना चाहता था।

[ -z "$XCS_INTEGRATION_NUMBER" ] && echo "Build #0" || xcrun agvtool new-version ${XCS_INTEGRATION_NUMBER} 
7

आपको वास्तव में एक्सकोडोल को एक्सकोड बॉट एकीकरण संख्या में सेट नंबर सेट करने की आवश्यकता नहीं है। अपनी प्रोजेक्ट सेटिंग्स में बस बिल्ड नंबर को $ {XCS_INTEGRATION_NUMBER} पर सेट करें।

संबंधित मुद्दे