シナリオ:
私はTargetA
iOSアプリケーションであるを持っています。このアプリは、によってコンパイルされた静的ライブラリを使用しますTargetB
。明らかに、TargetB
はの依存関係でありTargetA
、TargetB
常にの前に構築されTargetA
ます。ここまでは順調ですね。
今、私はスクリプトを実行したいのですTargetA
が、それ以前でもTargetB
。
私が試したこと:
- 「setup」aggregate/external-buildターゲットを追加し、それをの依存関係にし
TargetA
ます。半分は機能します。Xcodeが実行されるsetup
とTargetB
同時に実行TargetB
されるため、ビルドが早すぎる可能性があります。十分じゃない。 - 同じですが、並列に構築しないようにスキームで指定します。これは機能しますが、並行して構築できる他のターゲットがあるため、無駄です。
pre-action
スキーム内のビルドステップでスクリプトを実行します。これは機能しますが、間違っているようです(なぜですか?そのステップからの出力はビルドログに記録されません。したがって、この方法で使用するつもりはないのでしょうか?)。
私がしたくないこと:
の依存関係としてスクリプトを追加しますTargetB
。これはうまくいくでしょう。ただし、TargetB
実際には別のサブプロジェクトからのものであり、それを構築するコンテキストでは、スクリプトへのパラメーターはまだ不明です(主にTargetA
のプロジェクトのルートディレクトリ)。
私は何かが足りないのですか、それとも上記の#2または#3で解決する必要がありますか?
編集:上記のオプション#2で、依存関係の順序を変更します(私の場合、との間Setup
でTargetB
は役に立ちません-Xcodeは引き続き任意に順序を選択します。