?
# 讓Xcode自動更新Build版本
我們每天都要打包給測試,每天都要改Build比較麻煩,幸運的是可以通過Shell腳本來省略這個過程。
在Xcode工程里選擇對應的Target,在Build Phases里點擊“New Run Script Phases”:

在下面的窗口中寫入類似于如下腳本:
~~~
buildNumber=$(/usr/libexec/PlistBuddy?-c?"Print?:CFBundleVersion"?"${PROJECT_DIR}/${INFOPLIST_FILE}")??
shortVersion=$(/usr/libexec/PlistBuddy?-c?"Print?:CFBundleShortVersionString"?"${PROJECT_DIR}/${INFOPLIST_FILE}")??
??
buildNumber=`date?+"%m%d"`??
buildNumber="$shortVersion.$buildNumber"??
??
/usr/libexec/PlistBuddy?-c?"Set?:CFBundleVersion?$buildNumber"?"${PROJECT_DIR}/${INFOPLIST_FILE}"??
~~~
前兩行是將工程當前的Build、Version讀取出來。
我的情況是基于Version加上日期以形成Build,如下:

關于date的格式化,[傳送門](http://www.cyberciti.biz/faq/linux-unix-formatting-dates-for-display/)。
如果Build是一個整形,可以這樣做遞增:
` buildNumber=$(($buildNumber?+?1))??`
如果要Build是類似于這樣的字符串:1.0.0,可以用awf命令取值,參考:[http://stackoverflow.com/questions/9258344/better-way-of-incrementing-build-number](http://stackoverflow.com/questions/9258344/better-way-of-incrementing-build-number)
如果僅僅只想在Release(如Archive等)的時候更新Build,可以嘗試加入判斷:
~~~
if?[?"${CONFIGURATION}"?=?"Release"?];?then??
??
fi??
~~~
- 前言
- iOS 自定義頁面的切換動畫與交互動畫 By Swift
- Swift 元組(Tuples)介紹
- Swift 可選值(Optional Values)介紹
- Swift Switch介紹
- Swift 值類型和引用類型
- Swift 柯里化(Currying)
- iOS GCD使用指南
- iOS8 Core Image In Swift:自動改善圖像以及內置濾鏡的使用
- 讓Xcode自動更新Build版本
- Swift 全功能的繪圖板開發
- Swift Nullability and Objective-C
- Swift Core Data 圖片存儲與讀取Demo
- Swift 繪圖板功能完善以及終極優化
- 如何設計一個 iOS 控件?(iOS 控件完全解析)