繁体   English   中英

cygwin和bash脚本一起使用时可以在提交时更新Android清单吗?

[英]can I use cygwin with bash script to update Android manifest on commit?

我发现此链接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   

我正在将TortoiseSVN与Windows SVN服务器一起使用(VisualSVN),所以我想知道是否可以将它放入cygwin命令中,以便svn中的预提交钩子可以运行此命令? 我没有太多使用cygwin,但是我正在寻找一种方法,使每次构建提交时都更新我的版本名称。

编辑:实际上看起来您可以使用工具调用FART http://fart-it.sourceforge.net/来查找和替换文本,因此我可以在SVN预提交中编写批处理脚本来查找和替换文本替换文本。

编辑#2:FART会更复杂,我将尝试使用第一个脚本,但是将“ git add”替换为“ svn add”,看看是否可行

在您提到的同一篇文章中,我发布了一个不同的解决方案,因为SVN大胆建议不要使用pre-commit钩子更改提交内容,否则可能会损坏所有内容! 您的清单可以在svn中永久保留相同的versionCode,而应该更改/bin/AndroidManifest.xml,这将被打包在.apk文件中

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM