自動(dòng)更新版本號(hào)腳本

自動(dòng)更新版本號(hào)

都知道開發(fā)的版本號(hào)有兩個(gè), 一個(gè)內(nèi)部人員知道的, 一個(gè)給用戶看的, 平時(shí)測(cè)試根據(jù)需求去做修改, 有的是 x.x.x 單純的數(shù)字, 有的是用日期表示, 我們的就是根據(jù)日期來表示的, 舉個(gè)例子, 今天是2017年03月09日, 第一版的版本號(hào)就是, 1.0.0309, 這個(gè)給別人看, 因?yàn)槭切」緶y(cè)試也不是很專業(yè), 所以這個(gè)版本號(hào)讓測(cè)試人員給提 bug 就方便一些, buid號(hào)以防萬一我也單獨(dú)做了一個(gè), 例如:1.0.0309.20, 針對(duì)于這個(gè)我就弄了一個(gè)腳本

# 這個(gè)腳本會(huì)讀取ver.xcconfig中的BUILD_NUMBER
# 對(duì)BUILD_NUMBER自增加1,然后自動(dòng)commit和push到代碼倉庫

CONFIG_FILE="/Users/zwy/Desktop/git_zwy/CloudSecretary/CloudSecretary/CloudSecretary/Supporting Files/ver.xcconfig"

VERSION=`cat $CONFIG_FILE | grep '^VERSION=' | sed 's/VERSION=1.0.0//'`
BUILD_NUMBER=`cat $CONFIG_FILE | grep '^BUILD_NUMBER=' | sed 's/BUILD_NUMBER=1.0.0//'`

# add version
NEW_VERSION=`expr $VERSION + 1`
# add build number
NEW_BUILD_NUMBER=`expr ${BUILD_NUMBER##*$VERSION.} + 1`

echo "" > $CONFIG_FILE
echo "VERSION=1.0.0$NEW_VERSION" >> $CONFIG_FILE
echo "BUILD_NUMBER=1.0.0$NEW_VERSION.$NEW_BUILD_NUMBER" >> $CONFIG_FILE

要想使用這個(gè)腳本首先需要?jiǎng)?chuàng)建一個(gè)xcconfig文件

// 在你需要的地方創(chuàng)建這么一個(gè)文件, 使用終端, 當(dāng)然用 xcode 也可以創(chuàng)建
$ touch ver.xcconfig 
// 進(jìn)行編輯
$ vim ver.xcconfig

寫入如下:
VERSION=1.0.0309
BUILD_NUMBER=1.0.0309.20
ver.xcconfig

解釋一下代碼:

// 這是配置的文件, 也就是你的 ver.xcconfig 所目錄的位置
CONFIG_FILE="/Users/zwy/Desktop/git_zwy/CloudSecretary/CloudSecretary/CloudSecretary/Supporting Files/ver.xcconfig"

// 通過 Linux 指令查詢并用空來替換前面的應(yīng)翁
/* 使用完指令獲取到的例如: 
 * VERSION=309 只是取出其中的數(shù)字
 * VERSION=309 此時(shí)取出的數(shù)字賦值給腳本中的 VERSION
 * BUILD_NUMBER 同理
 * 后面的指令只認(rèn)數(shù)字, 所以我們的這個(gè)日期的四不像需要裁剪, 這個(gè)東西就靠你自己的實(shí)際情況去修改了, 如果是正好的數(shù)字就不需要這么操作了
 */
VERSION=`cat $CONFIG_FILE | grep '^VERSION=' | sed 's/VERSION=1.0.0//'`
BUILD_NUMBER=`cat $CONFIG_FILE | grep '^BUILD_NUMBER=' | sed 's/BUILD_NUMBER=1.0.0//'`
// 版本號(hào) +1 
// expr 也是 Linux 的命令, 可以用expr測(cè)試一個(gè)數(shù), 判斷其是不是整數(shù), 然后再自增
NEW_VERSION=`expr $VERSION + 1`
// BUILD_NUMBER 同理, 只不過我這里明顯 BUILD_NUMBER 最后的數(shù)字之前的東西和 VERSION 一樣的, 所以需要截取出來最后的數(shù)字, 再自增
NEW_BUILD_NUMBER=`expr ${BUILD_NUMBER##*$VERSION.} + 1`

此時(shí)新的號(hào)碼就是:
NEW_VERSION = 310;
NEW_BUILD_NUMBER = 21;
// 最后這里就好理解了, 就是用 echo 命令將新的版本號(hào)的值重新賦值回去, 等到自增后的寫入 ver.xcconfig 這個(gè)文件中
echo "" > $CONFIG_FILE
echo "VERSION=1.0.0$NEW_VERSION" >> $CONFIG_FILE
echo "BUILD_NUMBER=1.0.0$NEW_VERSION.$NEW_BUILD_NUMBER" >> $CONFIG_FILE

腳本的命令就寫完了很簡(jiǎn)單的, 剩下的就是應(yīng)用了

在 Xcode 中的版本號(hào)那里寫上新的代表: $(VERSION) $(BUILD_NUMBER)

新的版本號(hào)

此時(shí)運(yùn)行起來, 使用獲取版本號(hào)的代碼, 你會(huì)發(fā)現(xiàn)根本沒有設(shè)置上, 取出來的是空 null

這還需要最一步適配, 如果你的項(xiàng)目使用了 Cocoapods 的話一定能看到這個(gè)地方

Project 的設(shè)置

這里其實(shí)就是配置 xcconfig 的地方, 如果你沒有 Cocoapods 的話直接切換成你的ver.xcconfig就好了, 否則的話, 就需要引入你的文件到 Cocoapods 的xcconfig文件中:

// 注意: 一定要是你的 ver.xcconfig 的完整路徑, 至于你放的位置需要幾個(gè) (../) 我就不確定了 
#include "../../../CloudSecretary/Supporting Files/ver.xcconfig"
引入其中
總之呢, 這個(gè)版本號(hào)增加的腳本, 就根據(jù)具體情況具體分析了, 比如你只需要 BUILD 增加, 就把那段 NEW_VERSION 自增的代碼刪除就行了

剩下就是怎么使用這個(gè)腳本了, 我這里有兩種方法, 第一種就是使用終端, 先把這段代碼保存成一個(gè)文件, 名字為add_version.sh, 然后每次增加的時(shí)候把它扔進(jìn)終端就行了, 但是每次都扔會(huì)很不方便的, 所以需要做一點(diǎn)點(diǎn)的修改:

  • 先打開你的終端切換到 cd ~ 根目錄
  • 然后 ls -a 你會(huì)看到很多你根目錄下的文件, 太多了, 我就不一一列舉了看下圖
    我們只要 .zshrc
  • 接下來, 輸入 vim .zshrc
  • 找個(gè)地方寫下一個(gè)函數(shù), source后面的東西是你的腳本文件的目錄
up () {
        source /Users/zwy/Desktop/add_build_number.sh 
}
  • 這樣你每次只需要打開終端輸入 up 回車, 就可以自動(dòng)增加了, 你也可以通過 which up 查看一下你的函數(shù)

第二種就是使用 Mac 上最強(qiáng)大的神器了, Alfred Workflows
這個(gè)神器, 我就不多講了, 自行百度吧親們, 先是進(jìn)來配置圖:

alfred

這個(gè)就是我的升級(jí)版本的腳本頁面, 第一個(gè)有點(diǎn)黃色的那個(gè)就是我們的入口, 可以選擇 hotkey 或者 keyword 兩種方式, 寫好了以后再這個(gè)控件上右鍵:

插入這個(gè)腳本控件, 然后把我們的腳本代碼放進(jìn)去就可以了, 使用 keyword 就需要下圖來調(diào)用, 使用 hotkey 就一鍵快捷就可以了
最后看下調(diào)用的截圖:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缅叠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哮奇,更是在濱河造成了極大的恐慌,老刑警劉巖窒所,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宫仗,死亡現(xiàn)場(chǎng)離奇詭異彻坛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)荐虐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門七兜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缚俏,你說我怎么就攤上這事惊搏≈椋” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵恬惯,是天一觀的道長(zhǎng)向拆。 經(jīng)常有香客問我,道長(zhǎng)酪耳,這世上最難降的妖魔是什么浓恳? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮碗暗,結(jié)果婚禮上颈将,老公的妹妹穿的比我還像新娘。我一直安慰自己言疗,他們只是感情好晴圾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著噪奄,像睡著了一般死姚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勤篮,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天都毒,我揣著相機(jī)與錄音,去河邊找鬼碰缔。 笑死账劲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的金抡。 我是一名探鬼主播瀑焦,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼竟终!你這毒婦竟也來了蝠猬?” 一聲冷哼從身側(cè)響起切蟋,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤统捶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后柄粹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喘鸟,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年驻右,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了什黑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡堪夭,死狀恐怖愕把,靈堂內(nèi)的尸體忽然破棺而出拣凹,到底是詐尸還是另有隱情,我是刑警寧澤恨豁,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布嚣镜,位于F島的核電站,受9級(jí)特大地震影響橘蜜,放射性物質(zhì)發(fā)生泄漏菊匿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一计福、第九天 我趴在偏房一處隱蔽的房頂上張望跌捆。 院中可真熱鬧,春花似錦象颖、人聲如沸佩厚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽可款。三九已至,卻和暖如春克蚂,著一層夾襖步出監(jiān)牢的瞬間闺鲸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工埃叭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留摸恍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓赤屋,卻偏偏與公主長(zhǎng)得像立镶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子类早,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容