← 返回首頁

我是如何在不開啟 Xcode 的情況下使用 Codex 建構應用程式

Paul Solt
Paul Solt
@PaulSolt
571🔁 54
𝕏 (Twitter)🔥

我是如何在不開啟 Xcode 的情況下使用 Codex 建構應用程式

你想使用 Codex 建構 iOS 或 macOS 應用程式嗎?

我有一個新的 Agent Skill 可以幫助你製作應用程式。如果沒有這個技能,你將會浪費大量時間。讓我來解釋一下。

當我使用 Codex 建構「Dangerous Spider」應用程式時,我注意到 Agent 總是忽略它自己的建構與測試失敗。它查看了錯誤的狀態碼。它確實無法找到錯誤,並會聲稱一切運作正常(但實際上並非如此)。

Xcode 編譯器的建構輸出極其冗長。真正的錯誤被埋沒在數千行文字中。試圖在 Xcode 建構輸出中尋找錯誤,就像大海撈針一樣。

當你引入 Agent 時,要求它們去尋找錯誤只會浪費時間與 context。

Agent 需要知道什麼是成功的,什麼是失敗的。這必須是「通過/失敗」的二元結果,因此我建立了一個由 Agent 設計的工作流程來達成這一點。

以下是我每天使用的 7 步驟工作流程:

1. 使用 AppCreator 讓 Xcode 專案對 Agent 更友善

我建立了一個名為 AppCreator 的 Agent Skill。執行一次,它就會建立一個新的 Xcode 專案架構,或對現有專案進行改造。現在,你的專案已經準備好與 Agent 協作了。

其核心在於:一個 Makefile 使用 xcbeautify 來封裝 CLI 的 xcodebuild 指令。這能從 Xcode 應用程式的建構與測試中產生乾淨、易讀的輸出。Agent 可以看到哪裡失敗了、修復它,然後繼續進行。不需要搜尋冗長的輸出。這適用於 iPhone 和 Mac 應用程式。

下載並安裝 AppCreator Skill,讓你的應用程式專案對 Agent 更友善。

2. make 是我唯一使用的建構指令

這個技能的設計目標是透過一個指令來建構並執行你的應用程式:

make

你的 Agent 知道如何使用 Makefile,所以這只是起點。你可以隨心所欲地擴充它。

我要求 Agent 將預設動作設定為「build-and-run」,並使用特殊的建構腳本,這樣新編譯的應用程式就會像在 Xcode 中一樣自動重新啟動。

  • 在 Codex CLI 中,輸入「make」來檢查 Agent 的工作成果。

  • 在 Codex 應用程式中,設定自訂執行動作:點擊「Play」按鈕並將其設定為:make

稍後若要尋找該設定,需要幾個額外步驟:前往 Environments → Project → View → Edit Local Actions → Actions → 將 Action Script 設定為 make

有了 Makefile,你就擁有了一種快速、可重複的方式來建構並執行你的應用程式(透過 CLI 的向上箭頭或 Codex 應用程式中的「Run」按鈕)。

3. 直接與它對話

如果你想獲得好的結果,你需要主動引導你的 Agent。

Agent 很強大,但它們會做一些你不想要的事情,而防止這種情況的唯一方法就是在它們工作時掌控方向。

我經常會複查工作成果,並在看到 Agent 做錯事時進行導向。

我使用 Wispr Flow 來大聲說出我的想法——描述我想要什麼、它應該如何運作、以及需要改變什麼。在 Agent 交回工作後,我會在測試新變更時啟動 Wispr Flow。這讓我有機會說出哪些部分運作正常,哪些部分不行,然後當我完成後,我可以將逐字稿直接貼到 Codex 應用程式中。

Plan mode 對於激發關於功能和邊緣案例的思考很有幫助。然而,我發現 Plan mode 的效果還不夠好。

相反地,我會將 Plan mode 作為起點,幫助你思考功能。利用它來激發討論,這樣你就可以精確定義你實際要建構的功能。

軟體開發是很細膩的,如果你採取逐個功能開發的方式,最終你會得到更好的軟體。

4. 測試能讓 Agent 保持負責

沒有測試,Agent 可能會變得草率。測試能讓 Agent 捕捉到它們自己的錯誤。

要求 Codex 在建構時編寫單元測試。你的目標是快速測試。UI 測試對於驗證很有幫助,但它們可能會很煩人且執行緩慢。我喜歡讓 Agent 使用 UI 測試來捕捉那些僅靠單元測試無法測試的錯誤。

我的建議是將你的測試分為至少兩個目標:

  • make test

  • make ui-test

當 Agent 執行 UI 測試時,它會接管你的電腦,如果你需要做其他事情,這可能會造成干擾(這就是擁有一台備用 Mac 很有用的地方)。

UI 測試會拖慢一切,所以最好只在交接點進行測試。當你的 Agent 完成了一項或多項任務時。不要對增量工作進行完整的迴歸測試;相反地,要求 Agent 只測試最小的子集來驗證它們的工作,以保持速度。

讓你的 Agent 閱讀這篇來自 Peter Steinberger (@steipete) 的文章:Running UI Tests on iOS With Ludicrous Speed。透過這篇文章,你可以幫助你的測試套件避免成為瓶頸。

5. 記錄執行階段結果

另一個不可或缺的工具是使用日誌和應用程式產出物 (artifacts)。讓你的 Agent 將日誌功能加入你的應用程式。這為它提供了另一個即時查看哪裡出錯的工具。

Agent 可以將開發日誌串流傳輸到檔案,或即時讀取它們,以解決那些不那麼顯而易見的問題。

當我的 Agent 反覆無法正確完成任務時,我就知道是時候加入更詳細的日誌了。

只需要求你的 Agent:

請在 XYZ 周圍加入詳細的日誌,這樣你就能看到發生了什麼並修復問題。

現在你的 Agent 就擁有了在執行階段測試邏輯並驗證結果的工具。

6. 你應該加入的 AGENTS.md 規則

以下是一些對我有幫助的規則。你可能需要根據自己的工作流程進行調整。

我隨 AppCreator 技能附帶了兩個腳本,可以防止危險的 git 指令與檔案刪除。

* Never add fallbacks or workarounds without my explicit written approval. If unsure, ask.
* Do not treat “continue” or silence as approval for any fallback behaviors.
* Use one code path per action. Buttons, menus, pop-up buttons, keyboard shortcuts, and gestures must call the same implementation.
* Do not add backward compatibility for new code. Only preserve backward compatibility when shipped behavior already exists. Ask if unclear.
* Add verbose logs for user actions, mode switches, monitor targeting, and input. Use these logs to triage problems at runtime.
* Never run destructive git commands without my explicit written approval.
* Forbidden git commands: `git reset --hard`, `git checkout --`, `git restore`, `git revert`, `git clean`, force push, and `git amend`.
* Always make atomic commits. One task or fix per commit. Use the `scripts/atomic_commit.sh Agent <NAME>: <intent>" <file1> <file2> ...`
* Never use `rm` for deleting files.
* Always use the trash script `scripts/move_to_trash.sh <paths...>` so that deletions can be reverted.
* Run fast, focused tests during implementation, and save the full regression suite for final handoff.
* Only run UI tests when requested.
* Do not claim verification passed if tooling or environment issues blocked it.

7. 你的 Agent 需要文件

想要更進階的成果嗎?使用 DocSetQuery 為 Codex 提供真實的 Apple 文件。

我使用 DocSet 套件建立了一組本地 Apple 文件,並讓 Agent 建立指南。

Agent 對程式碼的理解是模糊的。你需要給它們具體的程式碼,這樣它們才會使用實際的 API,而不是瞎猜。

另一個選擇是 https://sosumi.ai

這就是我使用的工具——拿去用吧:

  • AppCreator skill:建立新專案架構並改造現有專案。

  • 直接與它對話:保持焦點小而易於理解。

  • DocSetQuery:讓 Agent 利用快速的本地 Apple 文件。

你的 Codex 工作流程是什麼樣子的?在下方回覆。

追蹤 @PaulSolt 以獲取我實際用於建構與發布 iOS 和 macOS 應用程式的 Codex 工作流程。

附註:Super Easy Slides 已在 Mac App Store 上架(使用此工作流程建構)。你可以在此預覽我的 Dangerous Spider 應用程式。