美文网首页ToolsiOS开发征服iOS
自动更新版本号脚本

自动更新版本号脚本

作者: 游城十代2dai | 来源:发表于2017-03-09 18:02 被阅读268次

自动更新版本号

都知道开发的版本号有两个, 一个内部人员知道的, 一个给用户看的, 平时测试根据需求去做修改, 有的是 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 就一键快捷就可以了
最后看下调用的截图:

相关文章

网友评论

    本文标题:自动更新版本号脚本

    本文链接:https://www.haomeiwen.com/subject/eitggttx.html