不用開 Xcode!OpenAI 教你用終端寫完一整個(gè) iOS App

申明:本文原創(chuàng)來(lái)自微信公眾號(hào)《iOS新知》,轉(zhuǎn)載以防文章丟失無(wú)法,如有不合適,聯(lián)系我立馬可以刪除!

前言

上周末想試試讓 Codex 幫我從零搭一個(gè) SwiftUI 項(xiàng)目。結(jié)果折騰了半天——Codex 能寫代碼,但不會(huì)自己開 Xcode、跑模擬器、看截圖。整個(gè)流程斷斷續(xù)續(xù),來(lái)回切窗口,體驗(yàn)很碎。

然后發(fā)現(xiàn) OpenAI 官網(wǎng)悄悄更新了一篇用例指南,專門講怎么用 Codex 開發(fā) iOS 和 macOS 應(yīng)用??赐曛笪也乓庾R(shí)到,不是 Codex 不行,是我用的姿勢(shì)不對(duì)。

核心思路就一句話:別依賴 Xcode GUI,讓 Codex 留在終端里干活。

CLI 優(yōu)先,別讓 Agent 碰 Xcode

OpenAI 這篇指南反復(fù)強(qiáng)調(diào)一個(gè)原則:CLI-first。

為什么?因?yàn)?Codex 是一個(gè) Agent,它最擅長(zhǎng)的事情是在終端里跑命令、讀輸出、做決策。你讓它去點(diǎn) Xcode 的按鈕,它做不到。但蘋果自己的 xcodebuild 命令行工具,幾乎能覆蓋所有構(gòu)建場(chǎng)景:

列出項(xiàng)目里所有 scheme

xcodebuild -list

構(gòu)建

xcodebuild -scheme MyApp -sdk iphonesimulator build

跑測(cè)試

xcodebuild -scheme MyApp -sdk iphonesimulator test

歸檔

xcodebuild -scheme MyApp archive -archivePath ./build/MyApp.xcarchive

build、test、archive、build-for-testing、test-without-building,全都能在終端完成。Codex 跑完一條命令,看輸出有沒(méi)有報(bào)錯(cuò),決定下一步干什么——這就是一個(gè)完整的 Agent 循環(huán)。

如果你覺(jué)得 xcodebuild 的項(xiàng)目配置太麻煩(確實(shí),.xcodeproj 那堆 XML 鬼才看的懂),可以試試 Tuist。它用 Swift 寫項(xiàng)目配置,生成 Xcode 工程,構(gòu)建也走命令行,對(duì) Codex 更友好。

項(xiàng)目深了就上 XcodeBuildMCP

純 xcodebuild 能搞定大部分事情,但當(dāng)項(xiàng)目復(fù)雜到一定程度——多個(gè) target、多個(gè) scheme、需要控制模擬器、截屏、看日志——光靠 shell 命令就不夠用了。

這時(shí)候該上 XcodeBuildMCP。

MCP 全稱 Model Context Protocol,是讓 AI Agent 調(diào)用外部工具的標(biāo)準(zhǔn)協(xié)議。XcodeBuildMCP 就是一個(gè) MCP Server,把 Xcode 的能力暴露給 Codex:

列出所有 target 和 scheme
指定模擬器構(gòu)建、啟動(dòng) App
跑完自動(dòng)截屏,Codex 能"看到"界面長(zhǎng)什么樣
讀取構(gòu)建日志和運(yùn)行日志

等于給 Codex 裝了一雙眼睛。它改完代碼,自己構(gòu)建,自己?jiǎn)?dòng),自己截屏看效果,不滿意再改——整個(gè)過(guò)程不需要你動(dòng)手。

指南里有個(gè)示例 prompt,我覺(jué)得寫的挺實(shí)用:

Add the onboarding flow for this SwiftUI app. Constraints:

  • Reuse existing models, navigation patterns, and shared utilities.

  • Use XcodeBuildMCP to list the right targets or schemes, build the app, launch it, and capture screenshots if you need visual verification.

  • Keep iOS and macOS compatibility intact unless I explicitly scope the work to one platform.

  • Tell me exactly which scheme, simulator, and checks you used.

關(guān)鍵在于你得明確告訴 Codex 它現(xiàn)在面對(duì)的是什么項(xiàng)目:是從零開始的新項(xiàng)目還是已有的工程,哪些平臺(tái)要兼容,驗(yàn)證方式是什么。說(shuō)得越清楚,Codex 干活越靠譜。

7 個(gè) SwiftUI 專用 Skill

這篇指南最讓我覺(jué)得有價(jià)值的部分,是它推薦了一整套 SwiftUI 開發(fā) Skill。Skill 相當(dāng)于給 Codex 加載一套領(lǐng)域知識(shí)和行為規(guī)范,裝上之后它寫出來(lái)地代碼質(zhì)量明顯不一樣。

SwiftUI Expert[1](作者是 SwiftLee 博主)— 通用型 SwiftUI 技能,內(nèi)置了大量最佳實(shí)踐。寫新功能、搭頁(yè)面,先掛這個(gè)。

SwiftUI Pro[2](作者是 Hacking with Swift 的作者)— 偏 Review 方向,覆蓋現(xiàn)代 API 用法、可維護(hù)性、無(wú)障礙、性能。適合寫完代碼讓 Codex 幫你審一遍。

Liquid Glass Expert[3](作者是 IceCubesApp 作者)— 專門針對(duì) iOS 26 和 macOS 26 的 Liquid Glass 新 API。今年 WWDC 之后這套視覺(jué)風(fēng)格是重頭戲,提前裝上有備無(wú)患。

SwiftUI Performance[4](同樣 Thomas Ricouard)— 掃描常見(jiàn)的 SwiftUI 性能坑,生成一份報(bào)告,按優(yōu)先級(jí)排列哪些問(wèn)題要先修。人和 Agent 都容易踩的坑,它都覆蓋了。

Swift Concurrency Expert[5](Thomas Ricouard)— Swift 并發(fā)那些莫名其妙的編譯器警告和報(bào)錯(cuò),有時(shí)侯連老手都頭疼。這個(gè) Skill 專治這種。OpenAI 自己也說(shuō)用了 GPT-5.4 之后需要它的場(chǎng)景少了,但并發(fā)診斷一吵起來(lái)它還是很有用。

SwiftUI View Refactor[6](Thomas Ricouard)— 幫你把巨大的 View 文件拆小,保持代碼風(fēng)格一致。

SwiftUI Patterns[7](Thomas Ricouard)— 推 @Observable 和 @Environment 的架構(gòu)模式,項(xiàng)目越大越需要統(tǒng)一的模式。

你看這 7 個(gè) Skill 里,Thomas Ricouard 一個(gè)人貢獻(xiàn)了 5 個(gè)。這哥們是 Reddit iOS App 的前開發(fā)者,IceCubesApp(Mastodon 客戶端)的作者,SwiftUI 社區(qū)里非常活躍的人。他的 Skill 質(zhì)量基本上是第一梯隊(duì)的。

實(shí)用建議

指南最后給了幾條實(shí)操建議,都挺實(shí)在:

從簡(jiǎn)單的開始。 新項(xiàng)目不用一上來(lái)就裝 MCP 和 Skill。先讓 Codex 搭個(gè)腳手架,寫個(gè)構(gòu)建腳本,確認(rèn)基本流程跑通。等項(xiàng)目復(fù)雜了再加裝備。

驗(yàn)證循環(huán)要小。 別每次改一行代碼就跑全量構(gòu)建。告訴 Codex 每次改完只跑最小的驗(yàn)證命令——比如只編譯你改的那個(gè)模塊,通過(guò)了再擴(kuò)大范圍。這樣 Codex 跑得快,你也不用干等。

保持在終端里。 這是貫穿全文的主題。xcodebuild 能搞定的就不要開 Xcode GUI。Codex 在終端里是自主的,一旦需要 GUI 操作就斷了。

XcodeBuildMCP 該上就上。 當(dāng)你需要 Codex 不只是寫代碼,還要自己驗(yàn)證界面效果的時(shí)候,XcodeBuildMCP 是目前最好的方案。Scheme 管理、模擬器控制、截屏這些,它全包了。

最后

這篇指南本質(zhì)上在講一件事:怎么讓 AI Agent 在 Apple 生態(tài)里真正"自治"。

核心就三步——xcodebuild 打底,XcodeBuildMCP 加持,Skill 拉高代碼質(zhì)量。把這三層疊起來(lái),Codex 就不只是個(gè)代碼補(bǔ)全工具,而是一個(gè)能自己構(gòu)建、自己跑、自己看結(jié)果、自己迭代的開發(fā) Agent。

對(duì)寫 iOS 的人來(lái)說(shuō),這套工作流值得試試。就算你平時(shí)不用 Codex,"CLI 優(yōu)先"和"小循環(huán)驗(yàn)證"這兩個(gè)思路,放到任何 AI 編程工具里都適用。

你有在用 AI Agent 寫 iOS 項(xiàng)目嗎?評(píng)論區(qū)聊聊你的工作流唄,一起交流學(xué)習(xí)一下。

參考資料

[1]
SwiftUI Expert: https://github.com/AvdLee/SwiftUI-Agent-Skill

[2]
SwiftUI Pro: https://github.com/twostraws/SwiftUI-Agent-Skill/blob/main/swiftui-pro/SKILL.md

[3]
Liquid Glass Expert: https://github.com/Dimillian/Skills/blob/main/swiftui-liquid-glass/SKILL.md

[4]
SwiftUI Performance: https://github.com/Dimillian/Skills/blob/main/swiftui-performance-audit/SKILL.md

[5]
Swift Concurrency Expert: https://github.com/Dimillian/Skills/blob/main/swift-concurrency-expert/SKILL.md

[6]
SwiftUI View Refactor: https://github.com/Dimillian/Skills/blob/main/swiftui-view-refactor/SKILL.md

[7]
SwiftUI Patterns: https://github.com/Dimillian/Skills/blob/main/swiftui-ui-patterns/SKILL.md

這里每天分享一個(gè) iOS 的新知識(shí),快來(lái)關(guān)注我吧

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容