xcode-build について
xcode-buildは、XcodeのコマンドラインツールでiOS・macOSプロジェクトをビルド、管理するスキルです。シミュレーター操作、スクリーンショット、ログ、テスト、XCUITestによるUI自動化を扱い、MCPツールではなくCLIを使います。
主な機能
- 01xcodebuildによるプロジェクトのビルド
- 02xcrun simctlによるシミュレーター管理
- 03シミュレーターへのアプリのインストールと起動
- 04スクリーンショットとアプリログの取得
- 05XCUITestによる単体テストとUIテスト
活用シーン
- 01シミュレーター向けのiOS・macOSプロジェクトのビルド
- 02アプリの起動とシミュレーター画面の撮影
- 03テスト中のアプリログ確認
- 04XCUITestによるUIチェックの自動化
MCP 対応
このスキルはMCPサーバーではなく、Xcode標準のコマンドラインツールを使います。XcodeBuildMCPで行うタスクに対応する直接コマンドを案内します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pzep1/ xcode-build-skill --skill xcode-buildインストール後、Claude Code で/xcode-buildを入力して読み込まれたか確認します。
同梱ファイルCLI_REFERENCE.mdXCUITEST_GUIDE.md
詳細
Xcode Build Direct
MCP サーバーではなく、Xcode のネイティブ CLI ツールを使用して iOS/macOS プロジェクトをビルドおよび管理します。
このスキルを使用する場面
次の場合にこのスキルを使用します。
- Xcode で iOS または macOS アプリをビルドするとき
- iOS シミュレーターでアプリを実行するとき
- シミュレーターのインスタンスを管理するとき(起動、終了、一覧表示)
- シミュレーターのスクリーンショットを撮るとき
- アプリのログを取得するとき
- テスト(ユニットテストまたは UI テスト)を実行するとき
- UI 操作を自動化するとき(タップ、入力、スワイプ)
優先事項:XcodeBuildMCP ツールではなく、常に直接 CLI コマンド(xcodebuild、xcrun simctl)を使用してください。
クイックスタート
1. プロジェクト構成を確認する
# List schemes in a workspace
xcodebuild -workspace /path/to/App.xcworkspace -list
# List schemes in a project
xcodebuild -project /path/to/App.xcodeproj -list
# Show build settings
xcodebuild -workspace /path/to/App.xcworkspace -scheme AppScheme -showBuildSettings
2. 使用可能なシミュレーターを確認する
# List all simulators
xcrun simctl list devices
# List as JSON (better for parsing)
xcrun simctl list devices --json
# List only available simulators
xcrun simctl list devices available
3. シミュレーター向けにビルドする
# Get simulator UUID first
UDID=$(xcrun simctl list devices --json | jq -r '.devices | .[].[] | select(.name=="iPhone 16 Pro") | .udid' | head -1)
# Build
xcodebuild \
-workspace /path/to/App.xcworkspace \
-scheme AppScheme \
-destination "platform=iOS Simulator,id=$UDID" \
-configuration Debug \
-derivedDataPath /tmp/build \
build
4. インストールして起動する
# Find the built .app
APP_PATH=$(find /tmp/build -name "*.app" -type d | head -1)
# Install on simulator
xcrun simctl install $UDID "$APP_PATH"
# Launch app
xcrun simctl launch $UDID com.your.bundleid
5. スクリーンショットを撮る
xcrun simctl io $UDID screenshot /tmp/screenshot.png
詳細リファレンス
コマンドの詳細については、以下を参照してください。
- CLI_REFERENCE.md -
xcodebuildおよびxcrun simctlのコマンドリファレンス - XCUITEST_GUIDE.md - XCUITest による UI 自動化(タップ、入力、ジェスチャー、要素の検索)
よく使うパターン
ビルドと実行のワークフロー
# 1. Boot simulator
xcrun simctl boot $UDID 2>/dev/null || true
# 2. Build
xcodebuild -workspace App.xcworkspace -scheme App \
-destination "platform=iOS Simulator,id=$UDID" \
-derivedDataPath /tmp/build build
# 3. Find and install app
APP=$(find /tmp/build -name "*.app" -type d | head -1)
xcrun simctl install $UDID "$APP"
# 4. Launch with console output
xcrun simctl launch --console $UDID com.bundle.id
ログの取得
# Stream app logs (run in background)
/usr/bin/log stream \
--predicate 'processImagePath CONTAINS[cd] "AppName"' \
--style json &
LOG_PID=$!
# ... interact with app ...
# Stop logging
kill $LOG_PID
テストの実行
# Unit tests
xcodebuild -workspace App.xcworkspace -scheme App \
-destination "platform=iOS Simulator,id=$UDID" \
test
# Specific test class
xcodebuild -workspace App.xcworkspace -scheme App \
-destination "platform=iOS Simulator,id=$UDID" \
-only-testing "AppTests/MyTestClass" \
test
UI 自動化
タップ、入力、UI 要素の検索には、XCUITest(Apple のネイティブ UI テストフレームワーク)を使用します。
これは、次の理由から MCP ベースの自動化よりも強力です。
- iOS ネイティブで、常に最新の状態です
- アクセシビリティツリーに完全にアクセスできます
- 要素の表示を待機し、アニメーションを処理できます
- Xcode テストランナーと連携します
詳しいパターンについては、XCUITEST_GUIDE.md を参照してください。
簡単な例:
// In a UI test file
func testLogin() {
let app = XCUIApplication()
app.launch()
// Type in text field
app.textFields["email"].tap()
app.textFields["email"].typeText("[email protected]")
// Tap button
app.buttons["Login"].tap()
// Verify result
XCTAssertTrue(app.staticTexts["Welcome"].exists)
}
UI テストを実行します。
xcodebuild -workspace App.xcworkspace -scheme AppUITests \
-destination "platform=iOS Simulator,id=$UDID" \
test
セッション設定
MCP とは異なり、CLI ツールはセッション状態を保持しません。環境変数または設定ファイルを使用してください。
# Set up session variables
export XCODE_WORKSPACE="/path/to/App.xcworkspace"
export XCODE_SCHEME="App"
export SIM_UDID="DD5E339B-468E-43C7-B219-54112C9D3250"
export APP_BUNDLE_ID="com.your.app"
# Use in commands
xcodebuild -workspace "$XCODE_WORKSPACE" -scheme "$XCODE_SCHEME" ...
xcrun simctl launch "$SIM_UDID" "$APP_BUNDLE_ID"
トラブルシューティング
「no matching destination」と表示されてビルドに失敗する
# Check available destinations
xcodebuild -workspace App.xcworkspace -scheme App -showDestinations
# Use exact destination string from output
シミュレーターが起動しない
# Check if already booted
xcrun simctl list devices | grep Booted
# Force shutdown and reboot
xcrun simctl shutdown $UDID
xcrun simctl boot $UDID
ビルドした .app が見つからない
# Check derived data path you specified
ls -la /tmp/build/Build/Products/Debug-iphonesimulator/
# Or use default derived data
ls ~/Library/Developer/Xcode/DerivedData/
XcodeBuildMCP との主な違い
| 機能 | XcodeBuildMCP | このスキル |
|---|---|---|
| ビルド | build_sim({...}) | xcodebuild -workspace ... build |
| シミュレーターの一覧表示 | list_sims() | xcrun simctl list devices |
| アプリの起動 | launch_app_sim({...}) | xcrun simctl launch $UDID $BUNDLE |
| スクリーンショット | screenshot({...}) | xcrun simctl io $UDID screenshot |
| タップ/入力 | tap({x,y})、type_text({...}) | XCUITest フレームワーク |
| セッション状態 | 組み込み | 環境変数 |
コメント
Markdown 対応