我发现这个链接https://stackoverflow.com/questions/6579697/android-how-to-make-the-versioncode-update-automatically-with-every-build包含以下代码:
#!/usr/bin/env bash
MANIFEST="AndroidManifest.xml"
if [ -f $MANIFEST ]
then
LINE=$(grep -o ${MANIFEST} -e 'android:versionCode="[0-9]*"');
declare -a LINE;
LINE=(`echo $LINE | tr "\"" " "`);
VERSION=(${LINE[1]});
INCREMENTED=$(($VERSION+1))
sed "s/android:versionCode=\"[0-9]*\"/android:versionCode=\"${INCREMENTED}\"/" $MANIFEST > $MANIFEST.tmp && mv $MANIFEST.tmp $MANIFEST
git add $MANIFEST
echo "Updated android:versionCode to ${INCREMENTED} in ${MANIFEST}";
fi
但是,我正在使用带有 Windows SVN 服务器的 TortoiseSVN(VisualSVN),所以我想知道是否可以将其放入 cygwin 命令中,以便 svn 中的预提交挂钩可以运行它?我没有太多使用 cygwin,但我正在寻找一种方法来在每次构建提交时更新我的版本名称。
编辑:实际上看起来您可以使用名为 FART http://fart-it.sourceforge.net/的工具来查找和替换文本,所以我可以在 SVN 预提交中编写一个批处理脚本来查找和替换文本。
编辑#2:FART 会更复杂,我将尝试使用第一个脚本,但将“git add”替换为“svn add”,看看是否有效