2011-07-06 4 views
1

Androidアプリでバージョン番号の自動インクリメントを設定しようとしています。 ファイルのチェックアウトを行い、文字列をバージョン値で自動インクリメントしてから、TFSシステムで自動的にチェックインするAntタスクを設定しました。だから、これはtest.propertiesファイルには、このcontetntを持っている:私はこの文字列の値の交換を設定する方法をAntが特定の文字列値を別のファイルに渡す

<propertyfile file="${basedir}/src/test.properties"> 
    <entry key="versionCode" value="1" type="int" operation="+" /> 
</propertyfile> 

:アンドロイド:versionCode = "1"、位置自動インクリメントは、この作業をした

versionCode="1" 

ターゲットファイルandroidmanifest.xmlにありますか?

答えて

1

私はあなたのAntでReplaceRegExp taskを使用することができたとします。ファイルまたはファイルのセットでの置換パターンで与えられた正規表現の発生を置き換えるため

Directoryベースのタスクを。

それはこのようになります:

<replaceregexp file="${src}/androidmanifest.xml" 
      match="android:versionCode=&quot;[0-9]+&quot;" 
      replace="android:versionCode=&quot;${versionCode}&quot;" 
/> 

build.numberプロパティは、このタスクを実行する前に、プロパティファイルで読み込むことにより得ることができました。

+0

を参照してください。これはbuild_info.propertiesの内容です。build.major.number = 02 build.revision.number = 06 build.minor.number = 00 – mirakl

0

バニラアリ、不要Antのアドオンとのソリューションには、プロパティ$ {versionCode}は、ワークフロー
によって設定され、作成、使用上=

f.e. named props.txt 
    ... 
    android:[email protected]@ 
    ... 

以降を持っているpropertyfiletemplateを使用することができますコピー+ネストされたフィルタセットを使用して、テンプレートからpropertyfile =

<!-- somewhere set in your workflow maybe via userproperty -DversionCode=42 --> 
    <property name="versionCode" value="42"/> 
... 
    <copy file="props.txt" todir="/some/path" overwrite="true"> 
    <filterset> 
    <filter token="versionCode" value="${versionCode}"/> 
    </filterset> 
    </copy> 

/some/path/props.txtは=

を持っています
... 
android:versionCode=42 
... 

は、私は値が私のbuild_info.propertiesにのみ変更された後のことを、バージョン一度だけインクリメントしまっAnt Manual on filtersets

+0

ありがとうございました。ここで値を変更しました。match = "android:versionCode = " [0-9] + ""が一致するように設定されています:android:versionCode = "(。*)" " – mirakl

関連する問題