/ 目錄 / 演練場 / 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 搭配,撬動十倍槓桿

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
每次呼叫 Token 數
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