关键词:Xcode, Shell, 版本号自增, 脚本
概述
- 这个方案可以实现每次编译项目,使开发版本号的尾数自动+1。
- 每次编译后发布版本号保持不变。
- 手动修改发布版本号后编译,开发版本号自动改为发布版本号,并添加尾数。
源码及注释
#!/bin/bash
echo 版本号自增脚本调试开始
#buildVersion=$CURRENT_PROJECT_VERSION
buildVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
if [ $buildVersion = "\$(CURRENT_PROJECT_VERSION)" ]
then
echo 没有取到测试版本号,重新取。
buildVersion=$CURRENT_PROJECT_VERSION
else
echo 取到了测试版本号
fi
echo 当前测试版本号:$buildVersion
appVersion=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
if [ $appVersion = "\$(MARKETING_VERSION)" ]
then
echo 没有取到发布版本号,重新取。
appVersion=$MARKETING_VERSION
else
echo 取到了发布版本号
fi
echo 当前发布版本号:$appVersion
buildNumber=${buildVersion##*.}
echo 提取到的版本尾号:$buildNumber
buildVersionPre=${buildVersion%.*}
echo 提取到的测试版本号前段:$buildVersionPre
if [ $appVersion != $buildVersionPre ]
then
echo 发布版本号与测试版本号前段不同,清除获取到的版本尾号
buildNumber=0
fi
buildVersion=$appVersion.$(($buildNumber+1))
echo 拼接完的新版本号:$buildVersion
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildVersion" "$INFOPLIST_FILE"
if [ $? = 0 ]
then
echo 版本号修改成功
else
echo 版本号修改失败
fi
echo 版本号自增脚本调试结束
使用方法
创建一个 Run Script:
项目文件 -> TARGETS -> Build Phases -> + -> New Run Script Phase
将脚本内容复制粘贴到 Run Script 。
完成。
PREVIOUSSwift协议