1

Ant を使用して Android アプリケーションをビルドしています。ビルド時に、strings.xml に値の 1 つを設定したいと考えています。たとえば、私は使用することができます

<string name="app_name">MyApp-DEBUG</string>

デバッグビルドを使用するか、使用できます

<string name="app_name">MyApp<string>

リリースビルド用。これは可能ですか?

4

2 に答える 2

2

Ant には、次の 2 つのタスクが役立ちます。

最初は<replace>です。置き換えることができるパラメーターを含むファイル名をそれに付け、 <replace> タスクにそれらのパラメーターの値を与えます。ファイル内でそれらを置き換えます。バージョン管理下にあるものを置き換えるために使用されるため、このタスクは好きではありません。注意しないと、意図せずにファイルを変更してしまう可能性があります。

settings.xml
<settings>
     <properties>
          <property name="server" value="@SERVER@"/>
     </properties>'
</settings>
タスクを置換
 <replace file="settings.xml">
    <replacetoken token="@SERVER@"  value="google.com"/>
 </replace>

置換されたファイルのリビジョン #3 が、置換されたパラメーターを使用してファイルを誤ってチェックインしたバージョン管理リポジトリをたくさん見てきました (そして、パラメーターが変更されなかった次のリリースまでそれを認識していませんでした)。次に、バージョン #4 は、置換パラメーターを持つバージョン #2 の複製です。悪いバージョン #5 が続き、ファイルを復元するバージョン #6 が続きます。

私の推奨する方法は、ファイルを別のディレクトリにコピーし、コピー中に<filterset>/<filter>トークンを使用してファイルを変更することです。

 <copy todir="${target.dir}"
    file="settings.xml">
    <filterset>
        <filter token="SERVER" value="google"/>
    </filterset>
  </copy>

どちらも、個々のトークンを指定する代わりにプロパティ ファイルを使用できます。この<copy>/<filterset>ペアは、ファイルのファイルセットを取得し、一度にトークンの束を置き換えることができます。(バイナリファイルを渡さないように注意してください!)。

于 2012-08-23T03:10:26.393 に答える