2016-11-25 3 views
2

私はiOSのビルドとパッケージングのタスクを自動化するためにANTスクリプトを使用しています。現在のビルドスクリプトでは、コマンドラインから必要な環境を渡しています。そのスクリプトは、その特定の環境用のIPAファイルを生成します。ANT-さまざまな環境でiOSプロジェクトを再帰的に構築するにはどうすればよいですか?

基本的に、それは私がDev, QA & UATのためのビルドを作成する必要があり、次のtargets- ValidateParameters, SetupBuildProperties, SetupXcodeSettings, clean, archive & package.

を実行します。だから、私は3つの異なるIPAファイルを持つためにスクリプトを3回実行する必要があります。コマンドラインから環境を渡すと、私はANTプロパティに同じ環境変数を格納し、それはほぼすべてのターゲットで使用されます。なぜなら、プロパティは不変であるから、それは私にも役立たない。

ここで、スクリプトを1回だけ実行して3つのビルドをすべて生成できる方法はありますか?環境プロパティをリセットする方法がわかりません!!

私を助けてください。多くがあることを

<target name="buildForAllEnvs"> 
    <antcall target="runBuild"> 
     <param name="targetEnv" value="Dev"/> 
    </antcall> 
    <antcall target="runBuild"> 
     <param name="targetEnv" value="QA"/> 
    </antcall> 
    <antcall target="runBuild"> 
     <param name="targetEnv" value="UAT"/> 
    </antcall> 
</target> 

注:

答えて

1

一つの解決策は、あなたが各ターゲット環境のためantcallを使用して、ネストされた要素としての性質を渡すサブプロジェクトのビルドを呼び出す「buildForAllEnvs」のようなものと呼ばれるターゲットを作成することですAntのプロパティをオーバーライドまたはリセットする方法How to over-write the property in Ant?を参照してください:

  1. のAnt-Contribののvarタスクを使用することで(もifを使用して条件付き実行のための有用なタスクの束を紹介し、あなたのクラスパスにAntの-Contribのを追加し、forを使用してループする必要があります)。
  2. 異なるパラメータで同じビルドを再利用するためにmacrodefsを使用する。
  3. プロジェクトAPIを使用してプロパティを手動でオーバーライドします(ハッキーですが)。
関連する問題