AI ์ด์์คํดํธ ๋ฐ ๊ธฐํ MCP ํด๋ผ์ด์ธํธ์ ํตํฉํ๊ธฐ ์ํ Xcode ๊ด๋ จ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ Model Context Protocol (MCP) ์๋ฒ์ ๋๋ค.
- ๊ฐ์
- ์ ํ์ํ๊ฐ?
- ๊ธฐ๋ฅ
- ์์ํ๊ธฐ
- ์ฆ๋ถ ๋น๋ ์ง์
- ๋์ ๋๊ตฌ
- ๋๋ฐ์ด์ค ๋ฐฐํฌ๋ฅผ ์ํ ์ฝ๋ ์๋ช
- ๋ฌธ์ ํด๊ฒฐ
- ๊ฐ์ธ์ ๋ณด ๋ณดํธ
- ๋ฐ๋ชจ
- ๊ธฐ์ฌํ๊ธฐ
- ๋ผ์ด์ ์ค
XcodeBuildMCP๋ AI ์ด์์คํดํธ ๋ฐ ๊ธฐํ MCP ํด๋ผ์ด์ธํธ๋ฅผ ์ํด Xcode ์์ ์ ๋๊ตฌ ๋ฐ ๋ฆฌ์์ค๋ก ๋ ธ์ถํ๋ Model Context Protocol (MCP) ์๋ฒ์ ๋๋ค. ํ๋์ ์ธ ํ๋ฌ๊ทธ์ธ ์ํคํ ์ฒ๋ก ๊ตฌ์ถ๋์ด ์ํฌํ๋ก์ฐ ๊ธฐ๋ฐ ๋๋ ํ ๋ฆฌ๋ก ๊ตฌ์ฑ๋ ํฌ๊ด์ ์ธ ์์ฒด ํฌํจ ๋๊ตฌ ์ธํธ์ ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ์ํ MCP ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ์ฌ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ํตํด Xcode ํ๋ก์ ํธ, ์๋ฎฌ๋ ์ดํฐ, ๋๋ฐ์ด์ค ๋ฐ Swift ํจํค์ง์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ํธ์์ฉํ ์ ์์ต๋๋ค.
Cursor๋ฅผ ์ฌ์ฉํ์ฌ iOS ์๋ฎฌ๋ ์ดํฐ์์ ์ฑ์ ๋น๋, ์ค์น ๋ฐ ์คํํ๋ฉด์ ๋ฐํ์์ ๋ก๊ทธ๋ฅผ ์บก์ฒํ๋ ๋ชจ์ต.XcodeBuild MCP ๋๊ตฌ๋ ์ฃผ๋ก AI ์์ด์ ํธ์ Xcode ํ๋ก์ ํธ ๊ฐ์ ์ํธ์์ฉ์ ๊ฐ์ํํ๊ณ ํ์คํํ๊ธฐ ์ํด ์กด์ฌํฉ๋๋ค. ์ผ๋ฐ์ ์ธ Xcode ์์ ์ ์ํ ์ ์ฉ ๋๊ตฌ๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์๋ ๋๋ ์ ์ฌ์ ์ผ๋ก ์๋ชป๋ ๋ช ๋ น์ค ํธ์ถ์ ๋ํ ์์กด์ฑ์ ์ ๊ฑฐํฉ๋๋ค.
์ด๋ฅผ ํตํด ์ ๋ขฐํ ์ ์๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋ณด์ฅํ์ฌ ์์ด์ ํธ๊ฐ ๊ตฌ์ฑ ์ค๋ฅ์ ์ํ์ ์ค์ด๋ฉด์ Xcode์ ๊ธฐ๋ฅ์ ์ํํ๊ฒ ํ์ฉํ ์ ์์ต๋๋ค.
์ค์ํ ์ ์, ์ด MCP๊ฐ AI ์์ด์ ํธ๊ฐ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ณ , ์ค๋ฅ๋ฅผ ๊ฒ์ฌํ๊ณ , ์์จ์ ์ผ๋ก ๋ฐ๋ณตํจ์ผ๋ก์จ ์ฝ๋ ๋ณ๊ฒฝ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๊ฒ ํ๋ค๋ ๊ฒ์ ๋๋ค. Sweetpad๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ค์ฌ ๋๊ตฌ์ ๋ฌ๋ฆฌ XcodeBuild MCP๋ ์์ด์ ํธ๊ฐ ์ด๋ฌํ ์ํฌํ๋ก์ฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์๋ํํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
XcodeBuildMCP ์๋ฒ๋ ๋ค์๊ณผ ๊ฐ์ ๋๊ตฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค:
- ํ๋ก์ ํธ ๊ฒ์: Xcode ํ๋ก์ ํธ ๋ฐ ์ํฌ์คํ์ด์ค ๊ฒ์
- ๋น๋ ์์ : macOS, iOS ์๋ฎฌ๋ ์ดํฐ ๋ฐ iOS ๋๋ฐ์ด์ค ๋์์ ์ํ ํ๋ซํผ๋ณ ๋น๋ ๋๊ตฌ
- ํ๋ก์ ํธ ์ ๋ณด: Xcode ํ๋ก์ ํธ ๋ฐ ์ํฌ์คํ์ด์ค์ ์คํด ๋ชฉ๋ก ๋ฐ ๋น๋ ์ค์ ํ์ ๋๊ตฌ
- ์ ๋ฆฌ ์์ : xcodebuild์ ๊ธฐ๋ณธ clean ์ก์ ์ ์ฌ์ฉํ ๋น๋ ์ ํ ์ ๋ฆฌ
- ์ฆ๋ถ ๋น๋ ์ง์: ์ฆ๋ถ ๋น๋ ์ง์์ ํตํ ์ด๊ณ ์ ๋น๋ (์คํ์ , ์ตํธ์ธ ํ์)
- ํ๋ก์ ํธ ์ค์บํด๋ฉ: ์ํฌ์คํ์ด์ค + SPM ํจํค์ง ์ํคํ ์ฒ๋ฅผ ๊ฐ์ถ ํ๋์ ์ธ ํ ํ๋ฆฟ์ผ๋ก ์๋ก์ด iOS ๋ฐ macOS ํ๋ก์ ํธ ์์ฑ, ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ๋ฒ๋ค ์๋ณ์, ๋ฐฐํฌ ๋์ ๋ฐ ๋๋ฐ์ด์ค ํจ๋ฐ๋ฆฌ
- ํจํค์ง ๋น๋: ๊ตฌ์ฑ ๋ฐ ์ํคํ ์ฒ ์ต์ ์ ์ฌ์ฉํ Swift ํจํค์ง ๋น๋
- ํ ์คํธ ์คํ: ํํฐ๋ง ๋ฐ ๋ณ๋ ฌ ์คํ์ ํตํ Swift ํจํค์ง ํ ์คํธ ์ค์ํธ ์คํ
- ์คํ ํ์ผ ์คํ: ํ์์์ ์ฒ๋ฆฌ ๋ฐ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ ์ง์์ ํตํ ํจํค์ง ๋ฐ์ด๋๋ฆฌ ์คํ
- ํ๋ก์ธ์ค ๊ด๋ฆฌ: Swift Package ๋๊ตฌ๋ก ์์๋ ์ฅ๊ธฐ ์คํ ์คํ ํ์ผ ๋ชฉ๋ก ๋ฐ ์ค์ง
- ์ํฐํฉํธ ์ ๋ฆฌ: ์๋ก์ด ๋น๋๋ฅผ ์ํ ๋น๋ ์ํฐํฉํธ ๋ฐ ํ์ ๋ฐ์ดํฐ ์ ๊ฑฐ
- ์๋ฎฌ๋ ์ดํฐ ์ ์ด: ์๋ฎฌ๋ ์ดํฐ ๋ชฉ๋ก, ๋ถํ ๋ฐ ์ด๊ธฐ
- ์ฑ ๋ผ์ดํ์ฌ์ดํด: ์์ ํ ์ฑ ๊ด๋ฆฌ - ์๋ฎฌ๋ ์ดํฐ์์ ์ฑ ์ค์น, ์คํ ๋ฐ ์ค์ง
- ๋ก๊ทธ ์บก์ฒ: ์๋ฎฌ๋ ์ดํฐ์์ ๋ฐํ์ ๋ก๊ทธ ์บก์ฒ
- UI ์๋ํ: ์๋ฎฌ๋ ์ดํฐ UI ์์์ ์ํธ์์ฉ
- ์คํฌ๋ฆฐ์ท: ์๋ฎฌ๋ ์ดํฐ์์ ์คํฌ๋ฆฐ์ท ์บก์ฒ
- ๋น๋์ค ์บก์ฒ: ์๋ฎฌ๋ ์ดํฐ ๋น๋์ค ์บก์ฒ ์์/์ค์ง๋ฅผ MP4๋ก ์ ์ฅ (AXe v1.1.0+)
- ๋๋ฐ์ด์ค ๊ฒ์: USB ๋๋ Wi-Fi๋ก ์ฐ๊ฒฐ๋ ๋ฌผ๋ฆฌ์ Apple ๋๋ฐ์ด์ค ๋ชฉ๋ก
- ์ฑ ๋ผ์ดํ์ฌ์ดํด: ์์ ํ ์ฑ ๊ด๋ฆฌ - ๋ฌผ๋ฆฌ์ ๋๋ฐ์ด์ค์์ ์ฑ ๋น๋, ์ค์น, ์คํ ๋ฐ ์ค์ง
- ํ ์คํธ: ์์ธํ ๊ฒฐ๊ณผ ๋ฐ ํฌ๋ก์ค ํ๋ซํผ ์ง์์ ํตํ ๋ฌผ๋ฆฌ์ ๋๋ฐ์ด์ค์์ ํ ์คํธ ์ค์ํธ ์คํ
- ๋ก๊ทธ ์บก์ฒ: ๋ฌผ๋ฆฌ์ Apple ๋๋ฐ์ด์ค์์ ์คํ ์ค์ธ ์ฑ์ ์ฝ์ ์ถ๋ ฅ ์บก์ฒ
- ๋ฌด์ ์ฐ๊ฒฐ: Wi-Fi ๋คํธ์ํฌ๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ๋๋ฐ์ด์ค ์ง์
- ๋ฒ๋ค ID ์ถ์ถ: ๋ชจ๋ Apple ํ๋ซํผ์ ์ฑ ๋ฒ๋ค์์ ๋ฒ๋ค ์๋ณ์ ์ถ์ถ
- ์ฑ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ: ๋ชจ๋ ํ๋ซํผ์์ ์์ ํ ์ฑ ๋ผ์ดํ์ฌ์ดํด ์ ์ด
- ์๋ฎฌ๋ ์ดํฐ, ๋ฌผ๋ฆฌ์ ๋๋ฐ์ด์ค ๋ฐ macOS์์ ์ฑ ์คํ
- ํ๋ก์ธ์ค ID ๋๋ ๋ฒ๋ค ID ๊ด๋ฆฌ๋ก ์คํ ์ค์ธ ์ฑ ์ค์ง
- ํฌ๊ด์ ์ธ ์ฑ ๊ด๋ฆฌ๋ฅผ ์ํ ํ๋ก์ธ์ค ๋ชจ๋ํฐ๋ง ๋ฐ ์ ์ด
MCP ๋ฆฌ์์ค๋ฅผ ์ง์ํ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ํด XcodeBuildMCP๋ ํจ์จ์ ์ธ URI ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค:
- ์๋ฎฌ๋ ์ดํฐ ๋ฆฌ์์ค (
xcodebuildmcp://simulators): UUID ๋ฐ ์ํ์ ํจ๊ป ์ฌ์ฉ ๊ฐ๋ฅํ iOS ์๋ฎฌ๋ ์ดํฐ์ ์ง์ ์ก์ธ์ค - ๋๋ฐ์ด์ค ๋ฆฌ์์ค (
xcodebuildmcp://devices): UDID ๋ฐ ์ํ์ ํจ๊ป ์ฐ๊ฒฐ๋ ๋ฌผ๋ฆฌ์ Apple ๋๋ฐ์ด์ค์ ์ง์ ์ก์ธ์ค - Doctor ๋ฆฌ์์ค (
xcodebuildmcp://doctor): Xcode ๋ฒ์ , macOS ๋ฒ์ ๋ฐ Node.js ๋ฒ์ ๊ณผ ๊ฐ์ ํ๊ฒฝ ์ ๋ณด์ ์ง์ ์ก์ธ์ค
- macOS 14.5 ์ด์
- Xcode 16.x ์ด์
- Node 18.x ์ด์
๋น๋์ค ์บก์ฒ๋ ๋ฒ๋ค๋ AXe ๋ฐ์ด๋๋ฆฌ (v1.1.0+)๊ฐ ํ์ํฉ๋๋ค.
record_sim_video๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ก์ปฌ์์npm run bundle:axe๋ฅผ ํ ๋ฒ ์คํํ์ธ์. ๋จ์ ํ ์คํธ์๋ ํ์ํ์ง ์์ต๋๋ค.
MCP ํด๋ผ์ด์ธํธ ์ค์
๋น ๋ฅธ ์ค์น๋ฅผ ์ํด ๋ค์ ๋งํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค:
๋๋ถ๋ถ์ MCP ํด๋ผ์ด์ธํธ(Cursor, VS Code, Windsurf, Claude Desktop ๋ฑ)๋ ๋ค์ JSON ์ค์ ํ์์ ํ์ค์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ JSON ์ค์ ์ mcpServers ๊ฐ์ฒด์ ๋ค์์ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค:
"XcodeBuildMCP": {
"command": "npx",
"args": [
"-y",
"xcodebuildmcp@latest"
]
}Codex๋ MCP ์๋ฒ๋ฅผ ์ค์ ํ๊ธฐ ์ํด toml ์ค์ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค. OpenAI์ Codex CLI์ XcodeBuildMCP๋ฅผ ์ค์ ํ๋ ค๋ฉด Codex CLI ์ค์ ํ์ผ์ ๋ค์ ์ค์ ์ ์ถ๊ฐํ์ธ์:
[mcp_servers.XcodeBuildMCP]
command = "npx"
args = ["-y", "xcodebuildmcp@latest"]
env = { "INCREMENTAL_BUILDS_ENABLED" = "false", "XCODEBUILDMCP_SENTRY_DISABLED" = "false" }์์ธํ ๋ด์ฉ์ OpenAI Codex MCP ์๋ฒ ์ค์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
Claude Code์์ XcodeBuildMCP๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ช ๋ น์ค์ ํตํด ์ถ๊ฐํ ์ ์์ต๋๋ค:
# Claude Code์ XcodeBuildMCP ์๋ฒ ์ถ๊ฐ
claude mcp add XcodeBuildMCP npx xcodebuildmcp@latest
# ๋๋ ํ๊ฒฝ ๋ณ์์ ํจ๊ป
claude mcp add XcodeBuildMCP npx xcodebuildmcp@latest -e INCREMENTAL_BUILDS_ENABLED=false -e XCODEBUILDMCP_SENTRY_DISABLED=falseSmithery๋ฅผ ํตํด Claude Desktop์ฉ XcodeBuildMCP ์๋ฒ๋ฅผ ์๋์ผ๋ก ์ค์นํ๋ ค๋ฉด:
npx -y @smithery/cli install @cameroncooke/XcodeBuildMCP --client claudeImportant
XcodeBuildMCP๋ xcodebuild์ ๋งคํฌ๋ก ๊ฒ์ฆ ๊ฑด๋๋ฐ๊ธฐ๋ฅผ ์์ฒญํฉ๋๋ค. ์ด๋ Swift ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ ๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.
XcodeBuildMCP๋ MCP ๋๊ตฌ, ๋ฆฌ์์ค ๋ฐ ์ํ๋ง์ ๋ชจ๋ ์ง์ํฉ๋๋ค. ํ์ฌ ๋ค์ ์๋ํฐ๋ค์ ๋ค์ํ ์์ค์ MCP ๊ธฐ๋ฅ ์ง์์ ์ ๊ณตํฉ๋๋ค:
| ์๋ํฐ | ๋๊ตฌ | ๋ฆฌ์์ค | ์ํ๋ง |
|---|---|---|---|
| VS Code | โ | โ | โ |
| Cursor | โ | โ | โ |
| Windsurf | โ | โ | โ |
| Claude Code | โ | โ | โ |
| Claude Desktop | โ | โ | โ |
XcodeBuildMCP๋ ์ฆ๋ถ ๋น๋์ ๋ํ ์คํ์ ์ง์์ ํฌํจํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ผ๋ฉฐ INCREMENTAL_BUILDS_ENABLED ํ๊ฒฝ ๋ณ์๋ฅผ true๋ก ์ค์ ํ์ฌ ํ์ฑํํ ์ ์์ต๋๋ค:
์ฆ๋ถ ๋น๋๋ฅผ ํ์ฑํํ๋ ค๋ฉด INCREMENTAL_BUILDS_ENABLED ํ๊ฒฝ ๋ณ์๋ฅผ true๋ก ์ค์ ํ์ธ์:
MCP ์ค์ ์์:
"XcodeBuildMCP": {
...
"env": {
"INCREMENTAL_BUILDS_ENABLED": "true"
}
}Important
์ฆ๋ถ ๋น๋ ์ง์์ ํ์ฌ ๋งค์ฐ ์คํ์ ์ด๋ฉฐ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋ฐ์ํ๋ ๋ฌธ์ ๋ ์ด์ ํธ๋์ปค์ ๋ณด๊ณ ํด ์ฃผ์ธ์.
XcodeBuildMCP๋ AI ์ด์์คํดํธ์์ ์ปจํ ์คํธ ์๋์ฐ ์ฌ์ฉ์ ์ต์ ํํ๊ธฐ ์ํด ๋์ ๋๊ตฌ ๋ก๋ฉ์ ์ง์ํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ XcodeBuildMCP๊ฐ ์ ๊ณตํ๋ ๊ด๋ฒ์ํ ๋๊ตฌ ์ธํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก XcodeBuildMCP๋ ์์ ์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ๋ก๋ํฉ๋๋ค(์ ์ ๋ชจ๋). ์ด๋ ์ ์ฒด ๋๊ตฌ ์ธํธ์ ์ฆ์ ์ก์ธ์คํ ์ ์์ง๋ง ๋ ํฐ ์ปจํ ์คํธ ์๋์ฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ ๋๊ตฌ ๋ชจ๋๋ ๋ค์๊ณผ ๊ฐ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค:
- ์ต์ํ์ผ๋ก ์์: ์ด๊ธฐ์๋
discover_tools๋ฐdiscover_projs์ ๊ฐ์ ํ์ ๋๊ตฌ๋ง ์ฌ์ฉ ๊ฐ๋ฅ - AI ๊ธฐ๋ฐ ๊ฒ์: AI ์์ด์ ํธ๊ฐ XcodeBuildMCP๊ฐ ๊ฐ๋ฐ ์์
์ ๋์์ด ๋ ์ ์๋ค๊ณ ํ๋จํ๋ฉด ์๋์ผ๋ก
discover_tools๋๊ตฌ๋ฅผ ์ฌ์ฉ - ์ง๋ฅํ ๋ก๋ฉ: ์๋ฒ๊ฐ LLM ํธ์ถ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ๊ด๋ จ์ฑ ๋์ ์ํฌํ๋ก์ฐ ๊ทธ๋ฃน์ ์๋ณํ๊ณ ํด๋น ๋๊ตฌ๋ง ๋์ ์ผ๋ก ๋ก๋
- ์ปจํ ์คํธ ํจ์จ์ฑ: ์ ์ฒด ๊ธฐ๋ฅ์ ์ ์งํ๋ฉด์ ์ด๊ธฐ ์ปจํ ์คํธ ๊ณต๊ฐ์ ์ ์ฒด ๋๊ตฌ ๋ชฉ๋ก์์ ๋จ 2๊ฐ์ ๊ฒ์ ๋๊ตฌ๋ก ์ค์
๋์ ๋๊ตฌ๋ฅผ ํ์ฑํํ๋ ค๋ฉด XCODEBUILDMCP_DYNAMIC_TOOLS ํ๊ฒฝ ๋ณ์๋ฅผ true๋ก ์ค์ ํ์ธ์:
MCP ํด๋ผ์ด์ธํธ ์ค์ ์์:
"XcodeBuildMCP": {
...
"env": {
"XCODEBUILDMCP_DYNAMIC_TOOLS": "true"
}
}ํ์ฑํ๋๋ฉด AI ์์ด์ ํธ๋ ์ปจํ
์คํธ์ ๋ฐ๋ผ ๊ด๋ จ ๋๊ตฌ๋ฅผ ์๋์ผ๋ก ๊ฒ์ํ๊ณ ๋ก๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, iOS ์ฑ ์์
์ ์ธ๊ธํ๊ฑฐ๋ ์์ด์ ํธ๊ฐ ์ํฌ์คํ์ด์ค์์ iOS ๊ฐ๋ฐ ์์
์ ๊ฐ์งํ๋ฉด ์๋์ผ๋ก discover_tools ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌํ๋ก์ฐ์ ํ์ํ ์ ์ ํ ์๋ฎฌ๋ ์ดํฐ ๋ฐ ํ๋ก์ ํธ ๋๊ตฌ๋ฅผ ๋ก๋ํฉ๋๋ค.
๋์ ๋๊ตฌ๋ AI ๊ธฐ๋ฐ ๋๊ตฌ ๊ฒ์์ด ์๋ํ๊ธฐ ์ํด MCP ์ํ๋ง์ ์ง์ํ๋ MCP ํด๋ผ์ด์ธํธ๊ฐ ํ์ํฉ๋๋ค:
| ์๋ํฐ | ๋์ ๋๊ตฌ ์ง์ |
|---|---|
| VS Code | โ |
| Cursor | โ (MCP ์ํ๋ง ๋ฏธ์ง์) |
| Windsurf | โ (MCP ์ํ๋ง ๋ฏธ์ง์) |
| Claude Code | โ (MCP ์ํ๋ง ๋ฏธ์ง์) |
| Claude Desktop | โ (MCP ์ํ๋ง ๋ฏธ์ง์) |
Note
MCP ์ํ๋ง์ ์ง์ํ์ง ์๋ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ XcodeBuildMCP๋ XCODEBUILDMCP_DYNAMIC_TOOLS ์ค์ ์ ๊ด๊ณ์์ด ์์ ์ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๋ก๋ํ๋ ์ ์ ๋ชจ๋๋ก ์๋ ํด๋ฐฑ๋ฉ๋๋ค.
MCP ์ํ๋ง์ ์ง์ํ์ง ์์ง๋ง ์ฌ์ ํ ์ปจํ
์คํธ ์๋์ฐ ์ฌ์ฉ์ ์ค์ด๊ณ ์ถ์ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ XCODEBUILDMCP_ENABLED_WORKFLOWS ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์ํฌํ๋ก์ฐ๋ง ์ ํ์ ์ผ๋ก ๋ก๋ํ ์ ์์ต๋๋ค:
"XcodeBuildMCP": {
...
"env": {
"XCODEBUILDMCP_ENABLED_WORKFLOWS": "simulator,device,project-discovery"
}
}์ฌ์ฉ ๊ฐ๋ฅํ ์ํฌํ๋ก์ฐ:
device(14๊ฐ ๋๊ตฌ) - iOS ๋๋ฐ์ด์ค ๊ฐ๋ฐsimulator(18๊ฐ ๋๊ตฌ) - iOS ์๋ฎฌ๋ ์ดํฐ ๊ฐ๋ฐsimulator-management(8๊ฐ ๋๊ตฌ) - ์๋ฎฌ๋ ์ดํฐ ๊ด๋ฆฌswift-package(6๊ฐ ๋๊ตฌ) - Swift Package Managerproject-discovery(5๊ฐ ๋๊ตฌ) - ํ๋ก์ ํธ ๊ฒ์macos(11๊ฐ ๋๊ตฌ) - macOS ๊ฐ๋ฐui-testing(11๊ฐ ๋๊ตฌ) - UI ํ ์คํธ ๋ฐ ์๋ํlogging(4๊ฐ ๋๊ตฌ) - ๋ก๊ทธ ์บก์ฒ ๋ฐ ๊ด๋ฆฌproject-scaffolding(2๊ฐ ๋๊ตฌ) - ํ๋ก์ ํธ ์ค์บํด๋ฉutilities(1๊ฐ ๋๊ตฌ) - ํ๋ก์ ํธ ์ ํธ๋ฆฌํฐdoctor(1๊ฐ ๋๊ตฌ) - ์์คํ Doctordiscovery(1๊ฐ ๋๊ตฌ) - ๋์ ๋๊ตฌ ๊ฒ์
Note
XCODEBUILDMCP_ENABLED_WORKFLOWS ์ค์ ์ ์ ์ ๋ชจ๋์์๋ง ์๋ํฉ๋๋ค. XCODEBUILDMCP_DYNAMIC_TOOLS=true๊ฐ ์ค์ ๋๋ฉด ์ ํ์ ์ํฌํ๋ก์ฐ ์ค์ ์ ๋ฌด์๋ฉ๋๋ค.
๋๋ฐ์ด์ค ๋ฐฐํฌ ๊ธฐ๋ฅ์ด ์๋ํ๋ ค๋ฉด XcodeBuildMCP ๋๋ฐ์ด์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ Xcode์์ ์ฝ๋ ์๋ช ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด์ผ ํฉ๋๋ค:
- Xcode์์ ํ๋ก์ ํธ ์ด๊ธฐ
- ํ๋ก์ ํธ ํ๊ฒ ์ ํ
- "Signing & Capabilities" ํญ์ผ๋ก ์ด๋
- "Automatically manage signing"์ ์ค์ ํ๊ณ ๊ฐ๋ฐ ํ ์ ํ
- ์ ํจํ ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ด ์ ํ๋์ด ์๋์ง ํ์ธ
์ฐธ๊ณ : XcodeBuildMCP๋ ์ฝ๋ ์๋ช ์ ์๋์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ด ์ด๊ธฐ ์ค์ ์ Xcode์์ ํ ๋ฒ ์ํํด์ผ ํ๋ฉฐ, ๊ทธ ํ MCP ๋๋ฐ์ด์ค ๋๊ตฌ๊ฐ ๋ฌผ๋ฆฌ์ ๋๋ฐ์ด์ค์์ ์ฑ์ ๋น๋, ์ค์น ๋ฐ ํ ์คํธํ ์ ์์ต๋๋ค.
XcodeBuildMCP์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด doctor ๋๊ตฌ๊ฐ ํ๊ฒฝ ๋ฐ ์ข ์์ฑ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
doctor ๋๊ตฌ๋ ์์คํ ์ค์ ์ ํ์ธํ๊ณ XcodeBuildMCP์ ํ์ํ ๋ชจ๋ ์ข ์์ฑ์ ์ํ๋ฅผ ๋ณด๊ณ ํ๋ ๋ ๋ฆฝ ์คํํ ์ ํธ๋ฆฌํฐ์ ๋๋ค. ์ด์๋ฅผ ๋ณด๊ณ ํ ๋ ํนํ ์ ์ฉํฉ๋๋ค.
# npx๋ฅผ ์ฌ์ฉํ์ฌ doctor ๋๊ตฌ ์คํ
npx --package xcodebuildmcp@latest xcodebuildmcp-doctordoctor ๋๊ตฌ๋ ๋ค์์ ๋ํ ํฌ๊ด์ ์ธ ์ ๋ณด๋ฅผ ์ถ๋ ฅํฉ๋๋ค:
- ์์คํ ๋ฐ Node.js ํ๊ฒฝ
- Xcode ์ค์น ๋ฐ ์ค์
- ํ์ ์ข ์์ฑ (xcodebuild, AXe ๋ฑ)
- XcodeBuildMCP์ ์ํฅ์ ๋ฏธ์น๋ ํ๊ฒฝ ๋ณ์
- ๊ธฐ๋ฅ ๊ฐ์ฉ์ฑ ์ํ
GitHub์์ ์ด์๋ฅผ ๋ณด๊ณ ํ ๋ ๋ฌธ์ ํด๊ฒฐ์ ๋๊ธฐ ์ํด doctor ๋๊ตฌ์ ์ ์ฒด ์ถ๋ ฅ์ ํฌํจํด ์ฃผ์ธ์.
์ด ํ๋ก์ ํธ๋ ์ค๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ์ง๋จ์ ์ํด Sentry๋ฅผ ์ฌ์ฉํฉ๋๋ค. Sentry๋ XcodeBuildMCP์ ์ ๋ขฐ์ฑ๊ณผ ์์ ์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ด์, ์ถฉ๋ ๋ฐ ์๊ธฐ์น ์์ ์ค๋ฅ๋ฅผ ์ถ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฅ ์์ค ๋ก๊ทธ ๋ฐ ์ง๋จ ์ ๋ณด๋ง Sentry๋ก ์ ์ก๋ฉ๋๋ค.
- ์ค๋ฅ ๋ก๊ทธ์๋ ์ค๋ฅ ๋ฉ์์ง, ์คํ ์ถ์ ๋ฐ (๊ฒฝ์ฐ์ ๋ฐ๋ผ) ํ์ผ ๊ฒฝ๋ก ๋๋ ํ๋ก์ ํธ ์ด๋ฆ๊ณผ ๊ฐ์ ์ธ๋ถ ์ ๋ณด๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ์ ํํ ๋ฌด์์ด ๋ก๊น ๋๋์ง ํ์ธํ๋ ค๋ฉด ์ด ์ ์ฅ์์ ์์ค๋ฅผ ๊ฒํ ํ ์ ์์ต๋๋ค.
- ์ค๋ฅ ๋ก๊ทธ๋ฅผ Sentry๋ก ๋ณด๋ด์ง ์์ผ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์
XCODEBUILDMCP_SENTRY_DISABLED=true๋ฅผ ์ค์ ํ์ฌ ์ตํธ์์ํ ์ ์์ต๋๋ค.
MCP ํด๋ผ์ด์ธํธ ์ค์ ์์:
"XcodeBuildMCP": {
...
"env": {
"XCODEBUILDMCP_SENTRY_DISABLED": "true"
}
}Demo3.mp4
๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! XcodeBuildMCP๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ ์ค ์ ์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ๋ฐ ๊ด๋ จ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์:
- CONTRIBUTING - ๊ธฐ์ฌ ๊ฐ์ด๋๋ผ์ธ ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
- CODE_QUALITY - ์ฝ๋ ํ์ง ํ์ค, ๋ฆฐํ ๋ฐ ์ํคํ ์ฒ ๊ท์น
- TESTING - ํ ์คํธ ์์น ๋ฐ ํจํด
- ARCHITECTURE - ์์คํ ์ํคํ ์ฒ ๋ฐ ์ค๊ณ ์์น
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค - ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.



