自动更新版本号脚本

自动更新版本号

都知道开发的版本号有两个, 一个内部人员知道的, 一个给用户看的, 平时测试根据需求去做修改, 有的是 x.x.x 单纯的数字, 有的是用日期表示, 我们的就是根据日期来表示的, 举个例子, 今天是2017年03月09日, 第一版的版本号就是, 1.0.0309, 这个给别人看, 因为是小公司测试也不是很专业, 所以这个版本号让测试人员给提 bug 就方便一些, buid号以防万一我也单独做了一个, 例如:1.0.0309.20, 针对于这个我就弄了一个脚本

# 这个脚本会读取ver.xcconfig中的BUILD_NUMBER
# 对BUILD_NUMBER自增加1,然后自动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

要想使用这个脚本首先需要创建一个xcconfig文件

// 在你需要的地方创建这么一个文件, 使用终端, 当然用 xcode 也可以创建
$ touch ver.xcconfig 
// 进行编辑
$ 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 指令查询并用空来替换前面的应翁
/* 使用完指令获取到的例如: 
 * VERSION=309 只是取出其中的数字
 * VERSION=309 此时取出的数字赋值给脚本中的 VERSION
 * BUILD_NUMBER 同理
 * 后面的指令只认数字, 所以我们的这个日期的四不像需要裁剪, 这个东西就靠你自己的实际情况去修改了, 如果是正好的数字就不需要这么操作了
 */
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//'`
// 版本号 +1 
// expr 也是 Linux 的命令, 可以用expr测试一个数, 判断其是不是整数, 然后再自增
NEW_VERSION=`expr $VERSION + 1`
// BUILD_NUMBER 同理, 只不过我这里明显 BUILD_NUMBER 最后的数字之前的东西和 VERSION 一样的, 所以需要截取出来最后的数字, 再自增
NEW_BUILD_NUMBER=`expr ${BUILD_NUMBER##*$VERSION.} + 1`

此时新的号码就是:
NEW_VERSION = 310;
NEW_BUILD_NUMBER = 21;
// 最后这里就好理解了, 就是用 echo 命令将新的版本号的值重新赋值回去, 等到自增后的写入 ver.xcconfig 这个文件中
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

脚本的命令就写完了很简单的, 剩下的就是应用了

在 Xcode 中的版本号那里写上新的代表: $(VERSION) $(BUILD_NUMBER)

新的版本号

此时运行起来, 使用获取版本号的代码, 你会发现根本没有设置上, 取出来的是空 null

这还需要最一步适配, 如果你的项目使用了 Cocoapods 的话一定能看到这个地方

Project 的设置

这里其实就是配置 xcconfig 的地方, 如果你没有 Cocoapods 的话直接切换成你的ver.xcconfig就好了, 否则的话, 就需要引入你的文件到 Cocoapods 的xcconfig文件中:

// 注意: 一定要是你的 ver.xcconfig 的完整路径, 至于你放的位置需要几个 (../) 我就不确定了 
#include "../../../CloudSecretary/Supporting Files/ver.xcconfig"
引入其中
总之呢, 这个版本号增加的脚本, 就根据具体情况具体分析了, 比如你只需要 BUILD 增加, 就把那段 NEW_VERSION 自增的代码删除就行了

剩下就是怎么使用这个脚本了, 我这里有两种方法, 第一种就是使用终端, 先把这段代码保存成一个文件, 名字为add_version.sh, 然后每次增加的时候把它扔进终端就行了, 但是每次都扔会很不方便的, 所以需要做一点点的修改:

  • 先打开你的终端切换到 cd ~ 根目录
  • 然后 ls -a 你会看到很多你根目录下的文件, 太多了, 我就不一一列举了看下图
    我们只要 .zshrc
  • 接下来, 输入 vim .zshrc
  • 找个地方写下一个函数, source后面的东西是你的脚本文件的目录
up () {
        source /Users/zwy/Desktop/add_build_number.sh 
}
  • 这样你每次只需要打开终端输入 up 回车, 就可以自动增加了, 你也可以通过 which up 查看一下你的函数

第二种就是使用 Mac 上最强大的神器了, Alfred Workflows
这个神器, 我就不多讲了, 自行百度吧亲们, 先是进来配置图:

alfred

这个就是我的升级版本的脚本页面, 第一个有点黄色的那个就是我们的入口, 可以选择 hotkey 或者 keyword 两种方式, 写好了以后再这个控件上右键:

插入这个脚本控件, 然后把我们的脚本代码放进去就可以了, 使用 keyword 就需要下图来调用, 使用 hotkey 就一键快捷就可以了
最后看下调用的截图:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • 写在前面:如果你是首次使用CocoaPods,目标是快准狠的安装和使用,可以直接看安装、具体使用、使用补充三部分快...
    翻这个墙阅读 402评论 0 0
  • 前言 前几天发布我的开源库<最简单方便的iOS轮播开源库:JYCarousel>到CocoaPods的时候。对Co...
    Dely阅读 17,032评论 12 82
  • 本文转自最新的CocoaPods的使用教程(一) 一. CocoaPods的介绍 什么是CocoaPods?Coc...
    Gintok阅读 2,317评论 0 4
  • 转载自:https://www.jianshu.com/p/dfe970588f95 前言 前几天发布我的开源库<...
    yytmzys阅读 423评论 0 0
  • 士师记12-16章已读 是谁克制了你呢??? 【士16:19】大利拉使参孙枕着她的膝睡觉,叫了一个人来剃除他头上的...
    程虔阅读 695评论 0 3