web-dev-qa-db-ja.com

xcodebuildワークスペースとスキーム

ワークスペースとスキームを指定すると、xcodebuildコマンドラインツールで何が起こるかについて少し混乱しています。

XCode IDE GUIで構成されたスキームがどのように機能するかを理解します。ビルドアクションはビルドするターゲットをリストし、各アクション(分析、テスト、実行、プロファイル、アーカイブ)に対して、どれを選択するかビルドアクションを実行する必要があります。

したがって、ビルドのビルドアクションで各アクション(分析、テスト、実行、プロファイル、アーカイブ)を選択した場合、以下のコマンドを実行するとどうなりますか。

xcodebuild clean install -workspace MyWorkspace.xcworkspace -scheme MyScheme 
-configuration AdHoc SYMROOT=PATH DSTROOT=PATH...

これは、XCodeでスキームを編集するときに指定されたすべてのこの構成を持つメインxcodeprojでMyScheme.xcschemeを検索します。

Xcodebuildはこのファイルから何を読み込みますか? AdHoc構成で構成済みターゲットを構築し、それ以外はすべて無視しますか?

19
Fergal Rooney

あと少しですが、構文は少しずれています。 man page によると:

xcodebuild -workspace workspacename -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting = value ...] [-userdefault = value ...]

ここで、buildactionは次のいずれかです。

buildaction ...ターゲットで実行する1つまたは複数のビルドアクションを指定します。利用可能なビルドアクションは次のとおりです。

       build       Build the target in the build root (SYMROOT).  This is the default build action.

       archive     Archive a scheme from the build root (SYMROOT).  This requires specifying a scheme.

       test        Test a scheme from the build root (SYMROOT).  This requires specifying a scheme.

       installsrc  Copy the source of the project to the source root (SRCROOT).

       install     Build the target and install it into the target's installation directory in the dis-
                   tribution root (DSTROOT).

       clean       Remove build products and intermediate files from the build root (SYMROOT).

Xcode IDEで、[Product]メニューから実行するか、IDE(Run = Play triangle、Test = wrench icon 、など)。

また、注意してくださいwherexcodebuildはビルドスキームを探しています-.xcproj OR =作成した.xcworkspaceファイルに応じて(手動でワークスペースを作成しなかった場合は、.xcprojファイルが作成されます)。

Xcodeの[スキームの管理]設定を使用して、どのスキームを使用しているかを確認することもできます。

12
Jon