我需要在构建/归档之前调整项目的构建和版本号。
我尝试了多种方法,但到目前为止没有任何效果。
我使用脚本添加了一个目标来更新数字,并将其添加为我的主要目标的第一个依赖项。但是因为我有多个依赖项,因为我的应用程序中有扩展,并且所有依赖项都是由 Xcode 并行执行(或至少以随机顺序),所以这是行不通的。
我在我的方案中添加了预操作,结果相同。 Xcode 不会等待我的预操作完成就继续构建(我添加了 sleep 100 来测试)。
当我改变构建编号时,脚本可以在其他任何事情开始之前完成是至关重要的,但还有一个副作用:构建甚至停止,因为在构建相关的过程中 plist 文件已被更改。目标。
让它变得更困难的是,我想使用agvtools设置我的版本和内部版本号。这显然会启动我无法控制的后台进程来更改 plist。
免责声明:我已经搜索过其他答案,没有帮助。
agvtools 在 Xcode 构建中不起作用。它总是会停止构建。
工作得很好的是 PlistBuddy,尽管设置不是那么好和整洁。
我在主方案的构建中添加了一个预操作,以调用项目中的新目标:
xcodebuild -project "${SRCROOT}/MAIN_APP.xcodeproj" -scheme BuildNumberPreProcess
在目标中内部版本号预处理我有一个运行脚本:
VERSION=$(head -n 1 version.txt)
BUILD=`git rev-list $(git rev-parse --abbrev-ref HEAD) | wc -l | awk '{ print $1 }'`
echo "${VERSION} (${BUILD})"
SCRIPT="${SRCROOT}/CLIENT/Supporting Files/set-version-in-plist.sh"
"${SCRIPT}" "${SRCROOT}/MAIN_APP/Supporting Files/Info.plist" ${VERSION} ${BUILD}
"${SCRIPT}" "${SRCROOT}/EXTENSION/Info.plist" ${VERSION} ${BUILD}
...
在 plist.h 中设置版本:
#!/bin/sh
# set-version-in-plist.sh
#
# usage:
# set-version-in-plist LIST VERSION BUILD
# LIST: Info.plist path & name
# VERSION: version number xxx.xxx.xxx
# BUILD: build number xxxxx
#
# Location of PlistBuddy
PLISTBUDDY="/usr/libexec/PlistBuddy"
echo "$1: $2 ($3)"
${PLISTBUDDY} -c "Set :CFBundleShortVersionString $2" "$1";
${PLISTBUDDY} -c "Set :CFBundleVersion $3" "$1";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)