19

シナリオ:

私はTargetAiOSアプリケーションであるを持っています。このアプリは、によってコンパイルされた静的ライブラリを使用しますTargetB。明らかに、TargetBはの依存関係でありTargetATargetB常にの前に構築されTargetAます。ここまでは順調ですね。

今、私はスクリプトを実行したいのですTargetAが、それ以前でもTargetB

私が試したこと:

  1. 「setup」aggregate/external-buildターゲットを追加し、それをの依存関係にしTargetAます。半分は機能します。Xcodeが実行されるsetupTargetB同時に実行TargetBされるため、ビルドが早すぎる可能性があります。十分じゃない。
  2. 同じですが、並列に構築しないようにスキームで指定します。これは機能しますが、並行して構築できる他のターゲットがあるため、無駄です。
  3. pre-actionスキーム内のビルドステップでスクリプトを実行します。これは機能しますが、間違っているようです(なぜですか?そのステップからの出力はビルドログに記録されません。したがって、この方法で使用するつもりはないのでしょうか?)。

私がしたくないこと:

の依存関係としてスクリプトを追加しますTargetB。これはうまくいくでしょう。ただし、TargetB実際には別のサブプロジェクトからのものであり、それを構築するコンテキストでは、スクリプトへのパラメーターはまだ不明です(主にTargetAのプロジェクトのルートディレクトリ)。

私は何かが足りないのですか、それとも上記の#2または#3で解決する必要がありますか?

編集:上記のオプション#2で、依存関係の順序を変更します(私の場合、との間SetupTargetBは役に立ちません-Xcodeは引き続き任意に順序を選択します。

4

1 に答える 1