# 用 Claude Code 开发 iOS App 新手入门指南

> 跟用 AI 写 Web 不一样，写 iOS App 中间隔着 Xcode、模拟器和签名机制。这篇讲第一次用 Claude Code 做 App 该怎么开局：项目用 Xcode 建、把编译和截图命令交给它形成自我验证闭环、CLAUDE.md 只写三样、一次只做一屏，以及几个一定会踩的坑。

- 原文链接: https://laojin.blog/blog/20260922_claude_code_ios_getting_started
- 作者: 老金
- 发布日期: 2026-09-22
- 标签: Claude Code, iOS, SwiftUI, Xcode, AI 编程

---

![用 Claude Code 开发 iOS App 新手入门指南](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260922/00_cover.png)

跟用 AI 写 Web 不一样，写 iOS App 在中间隔着一个 Xcode、模拟器和签名机制，这里以 Claude Code 举例，如果第一次拿 Claude Code 做 App，应该如何写对。

---

## 项目用 Xcode 建，别让 Claude 建

Claude Code 点不了 Xcode 的界面。所以顺序是：先用 Xcode 新建一个 SwiftUI App 项目（记住你填的 Product Name 和 Bundle ID），然后终端进去：

![用 Xcode 新建 SwiftUI App 项目](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260922/01_xcode_new_project.png)

```bash
cd ~/Developer/MyApp
claude
```

建项目时选新版 Xcode 的默认设置。新版用的是文件系统同步分组，你往目录里丢一个 `.swift` 文件就自动进项目，不用改 `project.pbxproj`。

---

## 给它一条能自己验证的路

这是最关键的一步。告诉它怎么编译：

```bash
xcodebuild -scheme MyApp \
  -destination 'platform=iOS Simulator,name=iPhone 17' \
  build
```

![xcodebuild 命令行编译输出](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260922/02_xcodebuild.png)

设备名先查一下，别硬猜：

```bash
xcrun simctl list devices available
```

![查询当前可用的模拟器设备](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260922/03_simctl_devices.png)

再往前一步，让它能**看见** UI。装到模拟器上跑起来，截张图：

```bash
xcrun simctl io booted screenshot /tmp/shot.png
```

![模拟器截图，让 Claude Code 能看见界面](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260922/04_simulator_screenshot.png)

然后让它读这张图。Claude Code 能看图片，你说「看 /tmp/shot.png，按钮间距太挤，改一下」，它就有了和你一样的眼睛。

编译报错它能读、界面效果它能看，这两条通了，它才能自己改-自己验，而不是让你当人肉编译器。

---

## CLAUDE.md 只写三样

在项目根建一个 `CLAUDE.md`，写它猜不到的东西：

1. **构建和跑模拟器的完整命令**（上面那几条，直接抄进去）
2. **技术约定**：SwiftUI、最低支持哪个 iOS 版本、用不用 Swift 并发严格模式、状态管理走什么
3. **不要做什么**：别动 `project.pbxproj`、别碰签名配置、别升依赖

别画目录树，它 `ls` 一下就知道。这个文件每轮对话都要重发，写废话是花钱陪跑。

---

## 一次一屏，别一次一个 App

新手最容易犯的错是开局就说「帮我做一个记账 App」。它会给你一坨能编译但处处不对的代码，你连从哪读起都不知道。

拆成一次一个可验证的小目标：

- 「做一个列表页，假数据先写死，跑起来给我截图」
- 「加一个新增页面，点保存回到列表」
- 「把假数据换成 SwiftData 持久化」

每完成一个就 `git commit`。一个任务做完 `/clear` 再开下一个，上一个任务的上下文留着只会让它更贵更笨。

---

## 几个一定会踩的坑

**API 过时**。模型的知识有截止时间，它可能给你几年前的写法。让它先读你项目里现有的代码，跟着现有风格写，比让它凭记忆写靠谱得多。

**GUI 的活自己干**。真机调试、证书签名、Archive 上传 App Store，这些在 Xcode 里点，别指望它。

**模拟器过不等于真机过**。权限弹窗、相机、推送、内购，模拟器上全都不准，最终要插线跑一次。

**别信「我已经修好了」**。没看到新的编译输出或新截图之前，那只是它的说法。养成习惯：让它把验证结果贴出来。

---

新手路径基本就这样：Xcode 建项目 → 把构建和截图命令交给它 → 一次一个小功能 → 每步都要它自己验证一遍。

有了 AI，代码这部分早已不是瓶颈，难的是找到符合用户需求的 App。但代码成本降低，相当于降低试错成本，所以何不动手做一个自己想要的 iOS App？
