2012-10-17 9 views
7

पर आधारित वृद्धि बिल्ड संस्करण, किसी प्रोजेक्ट को संकलित करते समय, इस स्क्रिप्ट को एक्सकोड प्रोजेक्ट के बिल्ड वर्जन को एक से बढ़ाकर, सिस्टम उपयोगकर्ता नाम से मेल खाता है। ध्यान रखें कि ये लक्ष्य-> चरण चरण-> एक्सकोड में रन स्क्रिप्ट के अंदर एक स्क्रिप्ट (एप्पलस्क्रिप्ट, पायथन या पर्ल नहीं) में यूनिक्स कमांड हैं।एक्सकोड बिल्ड स्क्रिप्ट (बिल्ड चरण-> रन स्क्रिप्ट) उपयोगकर्ता नाम (उपयोगकर्ता)

मैंने टर्मिनल में "यूको $ USER" किया है। यह लॉग-इन उपयोगकर्ता के उपयोगकर्ता नाम को ठीक से प्रिंट करता है, और यह वही स्ट्रिंग है जिसे मैंने कोड के दूसरे ब्लॉक में सशर्त कथन में रखा था।

कोड का पहला ब्लॉक काम करता है। दूसरा, जो सशर्त बयान जोड़ता है, नहीं करता है।

#!/bin/bash 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 


#!/bin/bash 
username=$USER 
if [ username == "erik" ]; then 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 
fi 

सिंटेक्स चिंताओं:
$ उपयोगकर्ता (केस संवेदी)
अर्द्धविराम की पार्सिंग सही में ब्रैकेट बंद करने के बाद अगर बयान तो एक ही लाइन पर बयान
के रूप में अगर बयान

उत्तर

4

आप लॉग में स्क्रिप्ट लॉग देख सकते हैं नेविगेटर, अपनी स्क्रिप्ट वाली मैं निम्न समस्या मिल गया है:

enter image description here

मेरा मानना ​​है कि डिफ़ॉल्ट तुलना केस संवेदी है, यह संवेदनशील नहीं आप तुलना से पहले अपर केस/छोटे अक्षरों पर उपयोगकर्ता नाम बदल सकते बनाने के लिए:

if [ `echo $USER | tr [:lower:] [:upper:]` = "USERNAME" ]; then 
echo "Got user check" 
fi 

जैसा कि आप देख सकते हैं कि मैंने अतिरिक्त var उपयोग और स्क्रिप्ट विफलता से बचने के लिए स्थिति में $ USER स्थानांतरित कर दिया है।

और if-then ब्लॉक पर अर्धविराम सामान्य बात है, man पृष्ठ देखें। then शब्द को नई लाइन में ले जाया जा सकता है यदि यह आपके पढ़ने के लिए अधिक सुविधाजनक है।

+0

बहुत बढ़िया! यह पूरी तरह से काम करता है! धन्यवाद महोदय। – Glimpse

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