1

我在我的 xcode 的构建阶段中尝试了这 2 个运行脚本,但它们都不起作用:

1)

REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
buildplist="$PROJECT_DIR/build.plist"
/usr/libexec/PlistBuddy -c "Set :STBuildNumber $REV" ${buildplist}

2)

plist="$PROJECT_DIR/build.plist"
svn update
rev=$(svn info | grep '^Revision:' | sed -e 's/^Revision: //')
/usr/libexec/PlistBuddy -c "Set :STBuildNumber $rev" "$plist"

我在项目文件夹中有一个 build.plist 文件,键值为“STBuildNumber”。每次构建项目时,该值始终设置为 0。

有谁知道可能的原因是什么?我使用 Cornerstone 作为 SVN 客户端,但不是 xcode 的原始客户端。我也在使用虚拟机来运行 Mac OS。我总是从 SVN 中查看最新的项目文件,但只有我无法获得 SVN 编号,但我的朋友能够获得它。他还从 SVN 签出了相同的项目文件。

感谢您的帮助。

4

1 回答 1

1

我们所做的是生成一个头文件(被 svn 忽略),确保通过在列表中向上拖动脚本使您的脚本在“编译源”阶段之前运行。

有关信息,这是我们的脚本:

VERS=`/usr/libexec/PlistBuddy ${INFOPLIST_FILE} -c "print CFBundleVersion"`
REV=`svnversion -n`
if [ "$?" -eq "0" ] && [ "$CONFIGURATION" != "Distribution" ] ; then
  REV=$VERS"-r"$REV;
else
  REV=$VERS;
fi
echo "#define VersionString @\"$REV\"" > ${PROJECT_DIR}/version.h

只有调试版本在版本字符串中有修订:例如 1.0-r212。当我们将源导出到 svn 之外时,svnversion 报告“已导出”。

于 2013-01-18T07:57:36.177 回答