/ Каталог / Песочница / 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 использует ту же схему mcpServers, что и Claude Desktop. Конфиг проекта приоритетнее глобального.

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
    }
  }
}

Щёлкните значок MCP Servers на боковой панели Cline, затем "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 использует массив объектов серверов, а не map.

~/.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 — эффект x10

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

Ещё

Ресурсы

📖 Читать официальный README на GitHub

🐙 Открытые задачи

🔍 Все 400+ MCP-серверов и Skills