Headless Xcode:從一句 Prompt 到 Simulator 驗證
Xcode 27 把 MCP server 放進工具鏈後,agent 不必打開 IDE 也能建立 iOS 專案、呼叫 Apple 的 SwiftUI skills、跑 build、渲染 preview,最後在 Simulator 驗證一段完整使用流程。
先把 Xcode 變成 MCP server
以命令列啟動 headless server,讓 agent 能透過已定義的工具操作建置、模擬器與預覽;Xcode UI 不再是唯一入口。
Prompt 之外還要給 skills
文章將 Apple 的 agent skills 與資料流、結構參考一併載入。Prompt 交代意圖,skills 則把 SwiftUI 實作方式與約束帶進上下文。
不是 build 成功就結束
先用 RenderPreview 直接取得 PNG,再上 Simulator 測導航與資料變動。每一層都檢查不同風險,避免只靠編譯綠燈。
文章示範的,是一條完整而非單點的 agent workflow
從需求到可觀察結果的六步回路
啟動 server,先處理權限邊界
Headless MCP server 必須先取得可操作 Xcode 與模擬器的授權。這個確認動作不是瑣事:它明確劃出 agent 在本機可做什麼,並避免隱性權限變成日後的不可解釋行為。
以 prompt 建專案,再由 skills 填入專業上下文
文章的核心做法不是只丟一句「做個 app」。它讓 agent 同時讀取 SwiftUI skill、資料流與結構參考,在生成時掌握模型、store、row 與 section 的責任分界。
BuildProject 先回答:專案能否真的編過
自動生成最基本的門檻仍是可建置。建置工具回傳結果與錯誤,讓 agent 能修正實際編譯問題,而不是只根據文字自信地宣稱完成。
RenderPreview 讓 agent 看見畫面
Preview 可在不打開 Xcode Canvas 的情況下產生 PNG。文章特別提醒:多個 state 的 render 要真的被檢視,因為單一成功訊號抓不到間距漂移、換行與狀態不一致。
Simulator 把畫面串回使用行為
Preview 適合單一畫面;導航、文字輸入與資料更新則需要跑完整 app flow。驗證語句維持在使用者意圖層級,工具細節交給 agent 與 MCP。
保留證據,讓下一輪可以迭代
build 回報、render 圖與 simulator 結果共同構成可檢討的輸出。這把「看起來做完」升級成能重跑、能比較、能找差異的工程回路。