/ 디렉터리 / 플레이그라운드 / 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 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기