/ ディレクトリ / プレイグラウンド / ios-simulator-skill
● コミュニティ conorluddy ⚡ 即起動

ios-simulator-skill

作者 conorluddy · conorluddy/ios-simulator-skill

22 optimized scripts wrapping xcodebuild + iOS simulator — Claude builds, runs, and interacts with apps via accessibility APIs, not pixel coords.

A production-grade Claude Code skill for iOS dev workflows. It wraps xcodebuild with progressive error disclosure (95%+ token reduction on build summaries) and drives the simulator through iOS accessibility APIs so interactions are robust against UI changes. Includes device lifecycle, screenshot compression, log tailing, and WCAG checks.

なぜ使うのか

主な機能

ライブデモ

実際の動作

ios-simulator-skill.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ios-simulator-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/conorluddy/ios-simulator-skill",
        "~/.claude/skills/ios-simulator-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ios-simulator-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/conorluddy/ios-simulator-skill",
        "~/.claude/skills/ios-simulator-skill"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ios-simulator-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/conorluddy/ios-simulator-skill",
        "~/.claude/skills/ios-simulator-skill"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ios-simulator-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/conorluddy/ios-simulator-skill",
        "~/.claude/skills/ios-simulator-skill"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ios-simulator-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/conorluddy/ios-simulator-skill",
        "~/.claude/skills/ios-simulator-skill"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "ios-simulator-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/conorluddy/ios-simulator-skill",
          "~/.claude/skills/ios-simulator-skill"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add ios-simulator-skill -- git clone https://github.com/conorluddy/ios-simulator-skill ~/.claude/skills/ios-simulator-skill

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: ios-simulator-skill

Build, run, and screenshot the current flow

👤 iOS devs using Claude Code to iterate ⏱ ~5 min beginner

使うタイミング: You changed a view and want to see it live without leaving the chat.

前提条件
  • Xcode + simulator installed — Standard macOS iOS dev setup
フロー
  1. Ask Claude to build and run
    Use ios-simulator-skill. Build MyApp scheme for iPhone 16, launch, navigate to Settings, screenshot.✓ コピーしました
    → Compact build summary, then the screenshot
  2. Iterate
    I tweaked the padding — rebuild and re-screenshot.✓ コピーしました
    → Fast turn with minimal token overhead

結果: Tight build-iterate-view loop in Claude Code.

注意点
  • Scheme name typo causes unclear error — Skill returns a compact list of available schemes on mismatch
組み合わせ: filesystem

Drive a scripted UI flow for smoke testing

👤 iOS devs and QA ⏱ ~15 min intermediate

使うタイミング: You want to verify a critical flow without writing full XCUITest scaffolding.

フロー
  1. Describe the flow
    Launch the app, tap 'Sign in', enter creds, tap the first row in the list, screenshot.✓ コピーしました
    → Claude uses accessibility labels to drive each step
  2. Check WCAG compliance
    Now run the accessibility audit on the current screen.✓ コピーしました
    → WCAG findings with fix suggestions

結果: A working smoke flow plus an a11y pass.

注意点
  • Flow breaks when a label changes — Labels are more stable than coordinates, but still review after big UI refactors

Tail logs while reproducing a bug

👤 iOS devs chasing a flaky issue ⏱ ~10 min intermediate

使うタイミング: A bug only repros in the simulator and you want the relevant logs.

フロー
  1. Reproduce with filtered logs
    Launch the app, tap through the crashing flow, tail logs filtered to error+warning.✓ コピーしました
    → Claude returns a trimmed log bundle and highlights the likely cause

結果: A targeted log excerpt and a hypothesis for the bug.

注意点
  • Logs too noisy if severity filter not set — Default to error+warning; raise to info only when debugging

組み合わせ

他のMCPと組み合わせて10倍の力を

ios-simulator-skill + filesystem

Skill runs the build; filesystem reads/writes the sources

Edit SettingsView.swift, then build and screenshot.✓ コピーしました
ios-simulator-skill + github

Reproduce an issue from a GitHub bug report in the simulator

Read issue #42, reproduce the steps in the simulator, attach screenshot to a comment.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
xcodebuild wrapper scheme, destination Any build request 0
Simulator driver (accessibility APIs) element label/role + action UI automation in the simulator 0
Screenshot capture none (current screen) Visual verification 0
Log tailing severity filter, duration Debugging runtime issues 0
Device lifecycle boot/shutdown/create/reset Fresh simulator state needed 0
Accessibility audit current screen A11y review 0

コストと制限

運用コスト

APIクォータ
None
呼び出しあたりのトークン
Very low — compact build summaries + compressed screenshots are the main design goal
金額
Free — skill is local
ヒント
Keep screenshots at default compression; full-res screens eat context fast.

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: No credentials in the skill. App-side secrets stay in your build config.
データ送信先: None — everything runs on local simulators

トラブルシューティング

よくあるエラーと対処法

'No such scheme'

Skill lists available schemes on mismatch; pick the exact name.

確認: xcodebuild -list -project MyApp.xcodeproj
Accessibility label not found

Add accessibilityIdentifier to the SwiftUI view — it's more stable than the visible label.

Simulator stuck booting

Use the device-lifecycle reset command; then re-boot.

確認: xcrun simctl list

代替案

ios-simulator-skill 他との比較

代替案代わりに使う場面トレードオフ
Direct xcodebuild + simctlYou don't mind the token bloat from raw outputNo abstraction; verbose
XcodeBuildMCPYou prefer an MCP server with structured toolsMCP route; this skill is local scripts

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る