XCodeでサブプロジェクトの構成を指定する
-
06-07-2019 - |
質問
別のプロジェクト( B
)を参照するXCodeプロジェクト( A
)があります。デフォルトでは(私の知る限り)、XCodeは A
のターゲットの構成に一致する B
依存関係の構成を暗黙的に構築します(例:" Debug&quot ;)。しかし、たとえば、 A
を" Debug"としてビルドする場合はどうでしょうか。 " Release"としてビルドする B
? XCodeでそれをどのように指定しますか?
解決
簡単なアプローチはわかりませんが、「スクリプトを実行」で依存関係のxcodebuildを直接呼び出すことで、総当たり攻撃を行うことができます。ビルドフェーズ。
これは単なる例であることがわかりますが、サブプロジェクトをリリース(シンボルなし)ビルドにすることが実際の目標である場合は、サブプロジェクトをライブラリまたはフレームワークにビルドするだけで、より良いエクスペリエンスを得ることができます結果のバイナリをバージョン管理システムにチェックインします。めったに変更されず、デバッグシンボルを必要としないシステムの一部があるときはいつでも、静的ライブラリとしてビルドしてチェックインします。コードがどこにあり、どのようにビルドされたかを示す.aを含むREADMEファイル)。これにより、ビルドとチェックアウトの両方の時間を節約でき、私の経験では大規模なプロジェクトにとって非常に貴重です。
他のヒント
これは役立つかもしれません:プロジェクト A
の構成が見つからない場合、Xcodeはフォールバックとして(またはリストの最初の構成) Release
構成をビルドします。
その後、「強制」することができます;このヒントを使用したリンク: Xcodeカスタムビルド構成により" library / file not found"が発生します静的ライブラリ用
はい、これはXcodeでは当然サポートされていません。ターゲットをビルドすると、それ自体とすべての依存ターゲットの1つの構成がビルドされます。
回避策は、Robが述べたように、xcodebuild -configuration Release(または何でも)を呼び出す単一のRun Scriptビルドフェーズで構成されるAggregate Targetタイプの依存ターゲットを持つことです。