【Xcode】build版本号自动跟随时间变化脚本

利用脚本让构建版本号自动化,再也不需要手动更改,开发效率杠杠滴~

新增脚本

修改脚本位置和名称

  • 如果有多个脚本执行,尽量把修改build版本号的脚本放在所有脚本的首位(优先执行,防止其他脚本或代码用到build版本号)
  • 为了和其他脚本区分,可以双击修改脚本名称(例:Run Script BuildVersion

添加代码

跟随时间变化(release和Debug不同情况)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
// 判断是哪个configuration
// Release Debug 或者只自定义的配置
if [ "Release" != "${CONFIGURATION}" ]
// 如果是Release做哪些事情
then
// 如果不是Release做哪些事情
// exit 0 退出 不执行下面的代码
fi

// 获取info.plist信息 CFBundleVersion 可以更改为想获取的信息的名字
buildNumber=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
shortVersion=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=`date +"%Y%m%d%H%M%S"`
buildNumber="$shortVersion.$buildNumber"

// 设置info.plist
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

自动+1

1
2
3
4
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"

修改项目显示名称为版本号(适用于不同版本号装到一个机器里面,便于区分是哪个版本)

1
2
3
4
5
6
7
8
9
10
11
12
13
#/bin/bash
if [ "Release" != "${CONFIGURATION}" ]; then

DisplayName=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
DisplayName="ep${DisplayName}-I"
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName $DisplayName" "$INFOPLIST_FILE"

else

DisplayName="真正的项目名称"
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName $DisplayName" "$INFOPLIST_FILE"

fi

贴上我用的脚本(版本号+日期)

以上完成后编译/运行即可看到效果