多くのターゲットを持つXcodeプロジェクトがあります。それらのうち6つは、ビルド段階の下でスクリプト実行を使用して最終リリース製品(静的ライブラリ、フレームワーク)を構築する集約です。私はそれらを個別に細かく構築することができますが、それらをすべて構築するために「ワンボタン」を押す方法はありません。Xcodeプロジェクトですべてのターゲット(またはスキーム)を構築する
アプローチ#1
まず私はそうのように、コマンドラインから-alltargetsを使用してみました:私は私のテストターゲット上でエラーが出るようで
xcodebuild -project MyProject.xcodeproj -alltargets
、彼らはのために構築されていないと主張しますテスト。私は彼らが通常正常に "テスト"するので、その意味が分かりません。このようにしようとすると、何かが違う。しかし、技術的には私が興味を持っていないターゲットが含まれています。
アプローチ#2
次のようにように私は、個別に集計ターゲットを構築し、実行スクリプトを持っていた集計を作ってみました:
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
それはのXcodeの者の視点からすべてのエラーを取得していません集計のいくつかは正しく構築されません。どうにかして、個々の集約内の実行スクリプトはトップレベルの集約の影響を受けていたと思います。
アプローチ#3
次の私は、ビルドセクションに記載されている6つの凝集体を持っていた新しい「RELEASE_PRODUCTS」スキームを作ってみました。それらがあることが予想された発見されていないビルド製品に関する
もあった他の不明瞭なエラー:そのことを私はこのようなエラーを得ました。
アプローチ#4
次の私は、私のようなので、Xcodeの外で完全に実行するスクリプトを作成:
#!/bin/bash
# Builds all release products
xcodebuild -project MyProject.xcodeproj -target FirstAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SecondAggregateTarget
xcodebuild -project MyProject.xcodeproj -target ThirdAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FourthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target FifthAggregateTarget
xcodebuild -project MyProject.xcodeproj -target SixthAggregateTarget
働く唯一の事のようです。しかし、私は、Xcodeの中から、これを私が望むならコマンドラインから打つことができる何かのものとして働かせることができればと思います。なぜなら、IDEを離れる必要がなく、成功か失敗かを報告できるからです。
私はあなたの心の考え方が好きです。私はそれもうまくいくはずだと思うが、それは私のためではない。 「Rm:...:ディレクトリが空でない」というエラーが表示されます。私は問題が、依存関係としてスクリプトを実行する他の集約を持つ集約に関連している必要があると信じています。このような依存関係が他のケースでは確かに機能することが分かっているので、何かがそのコンテキストで正しく機能してはいけません。 –