一、概念闡述:Build與Version的區別
在iOS中有兩種“版本號”,也就是所謂的version號與build號,如下圖所示:
我們用最簡潔的語言來區分這兩個版本號的區別以及用途如下:
- Version號:也稱為Bundle versions string, sthort. appstore以及itune中產品介紹所用的版本號,多面向用戶,多為兩段式或者三段式,1.0.1,1.2等,通常作為版本升級的主要依據
- Build號:也稱為Bundle version. 開發者團隊內部使用,方便追查bug,多用於內測過程中區分出不同產品。也就是相同Version下,Build號可以不同
二者在plist中也分別用不同的字段來表示
對於開發者而言,我們往往更關注Build號,也就是Bundle version。因此,本文旨在介紹一種方法,實現Bundle version自動標記,用以區分不同的內測產品。
二、Bundle version自動增加
Bundle version的表示方法用很多種,大致如下:時間表示法(e.g. 20150715)、字母表示法、純數字表示法。本文采用最后的純數字表示法,並且采用xcode對代碼的編譯次數作為bundle version。可以預見,這樣的bundle version將呈現出遞增趨勢。但需要每次編譯后都去修改xcode的工程設置以及plist嗎?答案是否定的。APPLE已經提供了工具幫我們實現bundle version的自動遞增。
具體設置步驟參加下圖(圖片轉載自此處):
其中的腳本代碼為:
xcrun agvtool next-version -all
三、More
如果是多人開發,會存在每個人開發的分支多次編譯導致Build版本不准的情況,但不影響開發進程。對於開發我們需要注意的是每次測試測試前的Build版本。確保它增加,就,可以了!至於是否要release時增加,是否需要手動修改,這個可以根據實際情況調整。畢竟,Build版本號只是一個輔助的參數。
原創文章,轉載請注明 編程小翁@博客園,郵件zilin_weng@163.com,歡迎各位與我在C/C++/Objective-C/機器視覺等領域展開交流!