自动更新版本号
都知道开发的版本号有两个, 一个内部人员知道的, 一个给用户看的, 平时测试根据需求去做修改, 有的是 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 所目录的位置
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 的话一定能看到这个地方
这里其实就是配置
xcconfig
的地方, 如果你没有 Cocoapods 的话直接切换成你的ver.xcconfig
就好了, 否则的话, 就需要引入你的文件到 Cocoapods 的xcconfig
文件中:
// 注意: 一定要是你的 ver.xcconfig 的完整路径, 至于你放的位置需要几个 (../) 我就不确定了
#include "../../../CloudSecretary/Supporting Files/ver.xcconfig"
总之呢, 这个版本号增加的脚本, 就根据具体情况具体分析了, 比如你只需要 BUILD 增加, 就把那段 NEW_VERSION 自增的代码删除就行了
剩下就是怎么使用这个脚本了, 我这里有两种方法, 第一种就是使用终端, 先把这段代码保存成一个文件, 名字为
add_version.sh
, 然后每次增加的时候把它扔进终端就行了, 但是每次都扔会很不方便的, 所以需要做一点点的修改:
- 先打开你的终端切换到
cd ~
根目录 - 然后
ls -a
你会看到很多你根目录下的文件, 太多了, 我就不一一列举了看下图
- 接下来, 输入
vim .zshrc
- 找个地方写下一个函数,
source
后面的东西是你的脚本文件的目录
up () {
source /Users/zwy/Desktop/add_build_number.sh
}
- 这样你每次只需要打开终端输入
up
回车, 就可以自动增加了, 你也可以通过which up
查看一下你的函数
第二种就是使用 Mac 上最强大的神器了, Alfred Workflows
这个神器, 我就不多讲了, 自行百度吧亲们, 先是进来配置图:
这个就是我的升级版本的脚本页面, 第一个有点黄色的那个就是我们的入口, 可以选择hotkey
或者keyword
两种方式, 写好了以后再这个控件上右键:
插入这个脚本控件, 然后把我们的脚本代码放进去就可以了, 使用keyword
就需要下图来调用, 使用hotkey
就一键快捷就可以了
最后看下调用的截图: