美文网首页#iOS#HeminWoniOS进阶指南IOS
添加git的commit作为版本号

添加git的commit作为版本号

作者: 尧月 | 来源:发表于2016-04-08 18:19 被阅读2236次

    之前使用的是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中去执行

    相关文章

      网友评论

      本文标题:添加git的commit作为版本号

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