2011-10-26 4 views
1

私は次のコードが含まれ、このリンクhttps://stackoverflow.com/questions/6579697/android-how-to-make-the-versioncode-update-automatically-with-every-buildが見つかりました:私は、しかし、窓のSVNサーバ(VisualSVN)でのTortoiseSVNを使用していますので、これは何とかcygwinのコマンドに入れることができれば、私は思ったんだけどコミット時にAndroidマニフェストを更新するためにcygwinをbashスクリプトで使用できますか?

#!/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 

をそのため、svnのpre-commitフックでこれを実行できますか?私はcygwinを多用していませんが、コミットが構築されるたびにバージョン名を更新する方法を探しています。

編集:実際には、ツールコールFART http://fart-it.sourceforge.net/を使用してテキストを検索して置き換えることができるように見えるので、SVNプリコミットでバッチスクリプトを記述してテキストを検索して置き換えることができます。

編集#2:おならは、私が最初のスクリプトを使用してみますが、交換することが

答えて

0

あなたはMavenを使用することができますが動作するかどうか「のsvnアドオン」と「gitの追加」と参照するつもりだより複雑になります( supports Android development)をbuildnumber pluginと置き換えた。

これは、SCM、順次ビルド番号、またはタイムスタンプを使用してビルド番号を作成します。 usage pageを参照してください。あなたが言及した同じポストで

0

、私はSVNは大胆に、プリコミットフックとコミット内容を変更しないことをお勧めしますので、あなたはそれがすべて壊れて行くことができます、別の解決策を掲載! 代わりにあなたが/bin/AndroidManifest.xmlを変更する必要があり、永遠のsvnで同じversionCodeを保つことができるあなたのマニフェスト、それはの.apkファイルにパッケージされるものである