添加git的commit作为版本号

  • 内容
  • 评论
  • 相关

git每一次commit的版本号是个哈希值。如果想要继续使用数字作为版本号的话,也是可以的,只需要计算出commit的次数就可以了。

获取所有分支的提交:

git rev-list --all|wc -l

--all替换为HEAD,就可以获取当前分支的提交次数了。

其实使用commit的哈希值作为版本号也是可以的,获取最新的一次提交的哈希值的前七个字符(应该够用了),

这样:

git rev-list HEAD --abbrev-commit --max-count=1

这篇文章,是如何把git提交次数作为app的内部版本号的。

但是原文有个问题,使用了CFBundleShortVersionString,这个应该是应用的版本号,比如2.13.0,这里其实应该设置的是build号,应该使用CFBundleVersion

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion `git rev-list HEAD | wc -l | awk '{print $1}'`" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}

这里用到了PlistBuddy,这是个可以对plist文件进行读写的工具,终端中执行/usr/libexec/PlistBuddy -h就可以查看其帮助了。


对于创建framework的工程,没有info.plist文件,只能自己设置了。如下:

FMK_NAME=MAMapKit
FMK_GIT=`git rev-list HEAD --abbrev-commit --max-count=1`
FMK_VERSION="2.5.0.${FMK_GIT}"
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework

注:以上脚本需要放到target的Run Script中去执行