2012-10-17 125 views
7

編譯項目時,此腳本應在系統用戶名匹配時將Xcode項目的構建版本增加1。請記住,這些只是在目標 - >構建階段 - >在Xcode中運行腳本中的腳本(而不是Applescript,Python或Perl)中的Unix命令。Xcode構建腳本(構建階段 - >運行腳本)基於用戶名(用戶)遞增構建版本

我在終端中完成了「echo $ 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 

語法的擔憂:
解析$ USER(區分大小寫)
分號在右括號之後的if語句
然後在同一行語句if語句

回答

4

您可以在日誌中看到腳本日誌導航,用你的腳本我有以下問題:

enter image description here

我相信默認的比較是區分大小寫的,以使其可以比較前更改用戶名大/小寫不敏感:

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

正如您所看到的,我將$ USER移到了該條件以避免額外的var使用情況和腳本失敗。

而分號if-then的分塊是正常的事情,請檢查man頁面。 then單詞可能會移動到新行,如果這樣更方便閱讀。

+0

太棒了!這完美的作品!謝謝你,先生。 – Glimpse

相關問題