1

我发现这个链接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”,看看是否有效

4

2 回答 2

0

您可以将 Maven(支持 Android 开发)与buildnumber 插件一起使用。

它让您可以通过 SCM、通过顺序内部版本号或通过时间戳创建内部版本号。请参阅使用页面

于 2011-10-26T18:45:12.503 回答
0

在你提到的同一篇文章中,我发布了一个不同的解决方案,因为 SVN 大胆建议不要使用 pre-commit hook 更改提交内容,你可以让它全部损坏!您的清单可以在 svn 中永远保持相同的 versionCode,而不是您应该更改 /bin/AndroidManifest.xml ,即打包在 .apk 文件中的那个

于 2012-11-30T17:46:47.620 回答