美文网首页
Xcode多Target下如何统一管理版本号

Xcode多Target下如何统一管理版本号

作者: Hanfank | 来源:发表于2019-05-07 21:14 被阅读0次

我们都知道,想要自动版本号自增有两种方式:
1、使用 agvtool 脚本去自增
如: agvtool new-version -all 1.8

2、使用PlistBuddy脚本去自增

# Release or Debug
if [ $CONFIGURATION == Release ]; then
    echo "Bumping build number..."

    buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}")
    echo "Bumped build number befor to $buildnum"
    if [[ "${buildnum}" == "" ]]; then
        echo "No build number in $plist"
    exit 2
    fi
    #使用bc才能计算小数
    buildnum=$(echo "${buildnum}+0.1"|bc)
    /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${INFOPLIST_FILE}"
    echo "Bumped build number after to $buildnum"

else
    echo $CONFIGURATION " build - Not bumping build number."
fi

但无论使用那种方法都需要写脚本。

我的需求:

需求起因:项目中的Target数量多,每次打包都需要手动修改版本号,较为繁琐,且费时间。

有两种方案可以处理我这个问题:

  1. 所有Target的版本号引用一个变量
    这种方案在网上找了很久,一直没找到合适的方法。
    按照我的理解,应该是要在Project -> Build Setting -> + -> User-Define Setting 变量,然后所有的版本号都引用这个变量。
    我尝试添加一个BUILD_VERSION变量,然后在Plist文件中的Bundle Version中的值设置为${BUILD_VERSION},但仍然无法显示我设置但任何值
    这样做其实是可以的,打包时是自己设置的值。
image.png
  1. 每次打包版本号都能自增(不太理想)
    这个方案我通过添加脚本的方式去做,版本可以自增,但是出现了其他情况。
    我在Build Phases 添加了如上的脚本后:
  • 手动打包可自动增加版本号,并且修改plist文件的版本号。(不满足需求,手动打包太累)
  • Bot 方式打包版本号增加了,但不能修改Plist文件。(我需要Bot打包)

到此我考虑,如果将脚本放在Bot中的Pre-Integration Scripts 可以吗?
抱歉,仍然不行,Bot 方式打包版本号增加了,但不能修改Plist文件。只如下图。


image.png

相关文章

网友评论

      本文标题:Xcode多Target下如何统一管理版本号

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