---
title: "構建 iOS 應用"
description: "說明用 Codex 做 iOS app 時的 CLI-first 路線，以及什麼時候引入 XcodeBuildMCP、skills 或外掛。"
verifiedAt: "2026-05-06"
---

import { Cards, Card } from 'fumadocs-ui/components/card';

用 Codex 做 iOS app，建議保持 CLI-first：greenfield 場景先 scaffold SwiftUI app 和 build-and-launch script；已有 Xcode 專案裡，需要更深自動化時再加入 XcodeBuildMCP、SwiftUI skills 或 Build iOS Apps plugin。

> [!IMPORTANT]
> iOS 任務的可信度來自可重複 build / launch / simulator loop。不要只交付程式碼檔案；要說明 scheme、device、命令和最小驗證結果。

官方頁面：[https://developers.openai.com/codex/use-cases/native-ios-apps](https://developers.openai.com/codex/use-cases/native-ios-apps)

## 適合什麼任務

| 場景 | Codex 應該做什麼 |
|---|---|
| 從零做 iPhone / iPad SwiftUI app | scaffold app 和 build loop |
| 已有 iOS project 需要 schemes、simulator output、screenshots 或 UI automation | 使用 XcodeBuildMCP 發現 targets、build、launch、截圖並迭代 |
| 團隊希望長時間 iOS UI 任務保持 agentic | 用 CLI-first loop，而不是依賴 Xcode GUI |

## 使用的能力

| 能力 | 用法 | 連結 |
|---|---|---|
| `build-ios-apps` | 構建或重構 SwiftUI UI，採用 Liquid Glass 等現代 iOS patterns，審計 runtime performance，並用 XcodeBuildMCP-backed workflows 在 simulator 中除錯 | [https://github.com/openai/plugins/tree/main/plugins/build-ios-apps](https://github.com/openai/plugins/tree/main/plugins/build-ios-apps) |

相關官方說明：

- Model Context Protocol：[https://developers.openai.com/codex/mcp](https://developers.openai.com/codex/mcp)
- Agent skills：[https://developers.openai.com/codex/skills](https://developers.openai.com/codex/skills)
- Local environments：[https://developers.openai.com/codex/app/local-environments](https://developers.openai.com/codex/app/local-environments)

## 起始提示詞

```text
请 scaffold 一个 starter SwiftUI app，并添加一个 build-and-launch script，方便我接到本地环境的 `Build` action。

约束：
- 保持 CLI-first。优先使用 Apple 的 `xcodebuild`；如果更干净，可以使用 Tuist。
- 如果这个 repo 已经包含完整 Xcode project，请使用 XcodeBuildMCP 列出 targets，选择正确 scheme，build、launch，并在迭代时捕获 screenshots。
- 如果已有 models、navigation patterns 和 shared utilities，请复用。
- 除非我明确要求 shared Apple-platform implementation，否则 app 聚焦 iPhone 和 iPad。
- 每次改动后使用小而可信的 validation loop；只有窄检查通过后，才扩展到更大范围 build。
- 告诉我你把这个任务当作 greenfield scaffold，还是 existing-project change。

交付：
- app scaffold 或 requested feature slice
- 一个包含准确 commands 的小型 build-and-launch script
- 你运行过的最小相关 validation steps
- 使用的准确 scheme、simulator 和 checks
```

這個 prompt 強調 CLI-first 和 small validation loop。Codex 應說明自己是在 greenfield scaffold，還是 existing-project change。

## 推薦技術面

| 需要 | 推薦預設值 | 原因 |
|---|---|---|
| UI framework | [SwiftUI](https://developer.apple.com/documentation/swiftui/) | 快速 prototype iPhone/iPad views、navigation、shared state，同時保持 UI code 可讀 |
| Build tooling | `xcodebuild` 或 [Tuist](https://docs.tuist.dev/) | 都能把 native build loop 留在 terminal，不依賴 Xcode GUI |
| Project automation | [XcodeBuildMCP](https://www.xcodebuildmcp.com/) | 需要 Codex inspect schemes/targets、launch app、capture screenshots、持續迭代時使用 |
| Distribution tooling | [App Store Connect CLI](https://asccli.sh/) | 讓 agent 留在 loop 裡，並把 app build 直接送到 App Store |

## Scaffold App 和 Build Loop

greenfield work 先用 plain prompting。讓 Codex scaffold starter iOS SwiftUI app，並寫一個小的 build-and-launch script，可以接到 local environment 的 `Build` action。

保持 CLI-first：

- `xcodebuild` 可以 list schemes。
- 可以執行 build、test、archive、`build-for-testing`、`test-without-building`。
- Codex 可以留在 agentic loop，不用跳進 Xcode GUI。

如果你接受第三方專案生成工具，[Tuist](https://tuist.dev/) 是一個可選下一步。它能 generate 和 build Xcode projects，仍然讓 Codex 在 terminal 裡 build / launch。

當已經進入完整 Xcode project，且需要 schemes、targets、simulator control、screenshots、logs、UI interaction 時，使用 [XcodeBuildMCP](https://www.xcodebuildmcp.com/)。

## 可用 Skills

第一版通常不需要 skill 或 MCP server。工作變專門後再加：

- [SwiftUI expert](https://github.com/AvdLee/SwiftUI-Agent-Skill)：通用 SwiftUI skill，內建較多實踐規則。
- [SwiftUI Pro](https://github.com/twostraws/SwiftUI-Agent-Skill/blob/main/swiftui-pro/SKILL.md)：面向 modern APIs、maintainability、accessibility、performance 的 SwiftUI review skill。
- [Liquid Glass expert](https://github.com/Dimillian/Skills/blob/main/swiftui-liquid-glass/SKILL.md)：幫助採用 iOS 26 Liquid Glass APIs，並調整 custom components。
- [SwiftUI performance](https://github.com/Dimillian/Skills/blob/main/swiftui-performance-audit/SKILL.md)：當 feature 感覺慢或 view update path 可疑時，掃描常見 SwiftUI mistakes。
- [Swift concurrency expert](https://github.com/Dimillian/Skills/blob/main/swift-concurrency-expert/SKILL.md)：處理 Swift concurrency diagnostics、編譯錯誤和 warning。
- [SwiftUI view refactor](https://github.com/Dimillian/Skills/blob/main/swiftui-view-refactor/SKILL.md)：讓 SwiftUI files 更小、更一致。
- [SwiftUI patterns](https://github.com/Dimillian/Skills/blob/main/swiftui-ui-patterns/SKILL.md)：隨著 app 成長，使用更可預測的 `@Observable` 和 `@Environment` architecture patterns。

## 迭代方式

第一版能跑後，或你從 existing project 開始時，prompt 要明確：

- 這是 greenfield repo 還是 existing Xcode project。
- 哪些 iOS devices 或 deployment targets 必須繼續工作。
- 期望的 validation loop 是什麼。
- 每次改動後跑哪條最窄但可信的驗證命令。

## 實用建議

### 從基礎開始

greenfield work 先 plain prompting，讓 Codex scaffold app 和 build-and-launch script。第一輪通常不需要 skill 或 MCP server。

### 使用小而可信的驗證迴圈

每次變更後，先跑能證明當前契約的最窄命令。窄檢查透過後，再擴充套件到 broader builds。

### 保持 CLI-first

`xcodebuild` 能覆蓋 list schemes、build、test、archive、`build-for-testing`、`test-without-building`，讓 Codex 不用依賴 Xcode GUI。

### 需要深度自動化時用 XcodeBuildMCP

當 schemes、targets、simulator control、screenshots、logs 和 UI interaction 變重要時，plain shell commands 不夠，XcodeBuildMCP 更適合。

## 接下來去哪

<Cards>
  <Card title="iOS 模擬器修 Bug" description="需要完整 reproduce-fix-verify loop 時進入 simulator debugging。" href="/zh-Hant/docs/codex/official/08-scenarios/101-ios-simulator-bug" />
  <Card title="SwiftUI 重構" description="已有大螢幕需要拆分時，按 behavior-preserving refactor 處理。" href="/zh-Hant/docs/codex/official/08-scenarios/102-swiftui-refactor" />
  <Card title="原生應用路線" description="按 iOS、macOS、平臺工具鏈和驗證方式選擇學習路線。" href="/zh-Hant/docs/codex/official/07-learning-paths/77-native-app-path" />
  <Card title="官方 iOS use case" description="Build iOS Apps plugin 和官方流程以 use case 頁面為準。" href="https://developers.openai.com/codex/use-cases/native-ios-apps" />
</Cards>
