# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Paul Solt (@PaulSolt) · 平台：X (Twitter) · 日期：2026-04-06

> 原始來源：https://x.com/paulsolt/status/2040132557983936772

## 中文摘要

# 我是如何在不開啟 Xcode 的情況下使用 Codex 建構應用程式

你想使用 Codex 建構 iOS 或 macOS 應用程式嗎？

我有一個新的 Agent Skill 可以幫助你製作應用程式。如果沒有這個技能，你將會浪費大量時間。讓我來解釋一下。

當我使用 Codex 建構「Dangerous Spider」應用程式時，我注意到 Agent 總是忽略它自己的建構與測試失敗。它查看了錯誤的狀態碼。它確實無法找到錯誤，並會聲稱一切運作正常（但實際上並非如此）。

Xcode 編譯器的建構輸出極其冗長。真正的錯誤被埋沒在數千行文字中。試圖在 Xcode 建構輸出中尋找錯誤，就像大海撈針一樣。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008826-diaHE8NPGbYAAa7AQpng.png)

當你引入 Agent 時，要求它們去尋找錯誤只會浪費時間與 context。

Agent 需要知道什麼是成功的，什麼是失敗的。這必須是「通過/失敗」的二元結果，因此我建立了一個由 Agent 設計的工作流程來達成這一點。

以下是我每天使用的 7 步驟工作流程：

## 1. 使用 AppCreator 讓 Xcode 專案對 Agent 更友善

我建立了一個名為 AppCreator 的 Agent Skill。執行一次，它就會建立一個新的 Xcode 專案架構，或對現有專案進行改造。現在，你的專案已經準備好與 Agent 協作了。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008883-diaHE1o8lbIAE5UGfjpg.jpg)

其核心在於：一個 `Makefile` 使用 xcbeautify 來封裝 CLI 的 `xcodebuild` 指令。這能從 Xcode 應用程式的建構與測試中產生乾淨、易讀的輸出。Agent 可以看到哪裡失敗了、修復它，然後繼續進行。不需要搜尋冗長的輸出。這適用於 iPhone 和 Mac 應用程式。

下載並安裝 AppCreator Skill，讓你的應用程式專案對 Agent 更友善。

## 2. make 是我唯一使用的建構指令

這個技能的設計目標是透過一個指令來建構並執行你的應用程式：

make

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008851-diaHE808zXQAISrPHjpg.jpg)

你的 Agent 知道如何使用 Makefile，所以這只是起點。你可以隨心所欲地擴充它。

我要求 Agent 將預設動作設定為「build-and-run」，並使用特殊的建構腳本，這樣新編譯的應用程式就會像在 Xcode 中一樣自動重新啟動。

- 在 Codex CLI 中，輸入「make」來檢查 Agent 的工作成果。

- 在 Codex 應用程式中，設定自訂執行動作：點擊「Play」按鈕並將其設定為：`make`。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008874-ediaHE9iZHXQAAFGqjpg.jpg)

稍後若要尋找該設定，需要幾個額外步驟：前往 Environments → Project → View → Edit Local Actions → Actions → 將 Action Script 設定為 `make`。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008898-diaHE9mTEaoAA6L4kjpg.jpg)

有了 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 測試來捕捉那些僅靠單元測試無法測試的錯誤。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008860-ediaHEiLaXMAArJLSjpg.jpg)

我的建議是將你的測試分為至少兩個目標：

- 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 可以將開發日誌串流傳輸到檔案，或即時讀取它們，以解決那些不那麼顯而易見的問題。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1775477008941-ediaHE5VnawAAAvmgjpg.jpg)

當我的 Agent 反覆無法正確完成任務時，我就知道是時候加入更詳細的日誌了。

只需要求你的 Agent：

> 請在 XYZ 周圍加入詳細的日誌，這樣你就能看到發生了什麼並修復問題。

現在你的 Agent 就擁有了在執行階段測試邏輯並驗證結果的工具。

## 6. 你應該加入的 AGENTS.md 規則

以下是一些對我有幫助的規則。你可能需要根據自己的工作流程進行調整。

我隨 AppCreator 技能附帶了兩個腳本，可以防止危險的 git 指令與檔案刪除。

```markdown
* 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 應用程式。

## 標籤

Skills, Agent, iOS, macOS, Xcode, Codex, Apple
