---
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="/docs/codex/official/08-scenarios/101-ios-simulator-bug" />
  <Card title="SwiftUI 重构" description="已有大屏幕需要拆分时，按 behavior-preserving refactor 处理。" href="/docs/codex/official/08-scenarios/102-swiftui-refactor" />
  <Card title="原生应用路线" description="按 iOS、macOS、平台工具链和验证方式选择学习路线。" href="/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>
