添加git的commit作为版本号

之前使用的是svn,svn每次提交的版本号是一个数字,用来作为内部版本号,确定打出的包所对应的代码库版本。

后来换到git,发现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中去执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 源代码管理工具的起源 为什么会出现源代码管理工具? 为了解决在软件开发过程中,由源代码引发的各种蛋疼繁琐问题 源代...
    小白文_Vincent阅读 3,232评论 2 8
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,969评论 2 87
  • GIT分布式版本控制系统最佳实践 这篇文章来自于老男孩教育高级架构师班12期的徐亮偉同学。 首先感谢老男孩架构师班...
    meng_philip123阅读 3,529评论 4 36
  • 穿过校园的电动车 室友小王子 短发的发尾轻扫我的眉眼 半眯着眼睛 靠在她肩膀上晴朗的秋风吹来/ 这是我们共度的最后...
    竹喧归浣女阅读 279评论 0 1
  • 缘起:亲爱的天使18班的小伙伴们大家早安!我是8组77号明霞,来自广西首府南宁,南宁是一座半城绿树半城楼的美丽家园...
    X麦田阅读 451评论 1 3