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サーバー(VisualSVN)でTortoiseSVNを使用しているので、svnの事前コミットフックがこれを実行できるように、これを何らかの方法でcygwinコマンドに入れることができるかどうか疑問に思っていますか?私は cygwin をあまり使用していませんが、コミットがビルドされるたびにバージョン名を更新する方法を探しています。

編集:実際には、ツール呼び出し FART http://fart-it.sourceforge.net/を使用してテキストを検索および置換できるように見えるため、SVN pre-commit でバッチスクリプトを記述して検索および置換できる場合があります。テキストを置き換えます。

編集 #2: FART はもっと複雑です。最初のスクリプトを使用してみますが、「git add」を「svn add」に置き換えて、それが機能するかどうかを確認します。

4

2 に答える 2

0

buildnumber pluginで Maven ( Android 開発をサポート) を使用できます。

SCM、連続ビルド番号、またはタイムスタンプを介してビルド番号を作成できます。使用方法のページを参照してください。

于 2011-10-26T18:45:12.503 に答える
0

あなたが言及したのと同じ投稿で、私は別の解決策を投稿しました。SVN は pre-commit フックでコミットの内容を変更しないことを大胆に推奨しているため、すべてが破損する可能性があります! マニフェストは svn で同じ versionCode を永久に保持できます。代わりに、.apk ファイルにパッケージ化される /bin/AndroidManifest.xml を変更する必要があります。

于 2012-11-30T17:46:47.620 に答える