mcpField
X
xcode-build

xcode-build

github.com/pzep1開発138315 回インストール38 週間前に更新
リポジトリ

xcode-build について

xcode-buildは、XcodeのコマンドラインツールでiOS・macOSプロジェクトをビルド、管理するスキルです。シミュレーター操作、スクリーンショット、ログ、テスト、XCUITestによるUI自動化を扱い、MCPツールではなくCLIを使います。

主な機能

  1. 01xcodebuildによるプロジェクトのビルド
  2. 02xcrun simctlによるシミュレーター管理
  3. 03シミュレーターへのアプリのインストールと起動
  4. 04スクリーンショットとアプリログの取得
  5. 05XCUITestによる単体テストとUIテスト

活用シーン

  1. 01シミュレーター向けのiOS・macOSプロジェクトのビルド
  2. 02アプリの起動とシミュレーター画面の撮影
  3. 03テスト中のアプリログ確認
  4. 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 フレームワーク
セッション状態組み込み環境変数

コメント