Claude Code 学习站
Mingyu's Library

学习站 / 实战 Tip / 簇 F · 端到端场景

从零做 iOS app 到提审

一个人、一台 Mac、一个点子,用 Claude Code 走完从立项到 App Store 提审的全程:阶段怎么分、每个阶段 Claude 干什么、模拟器怎么闭环验证。

开发期的关键是让 Claude 能自己验证自己(iOS Simulator pane 让它自己点、自己看);发布期的关键是把和 Apple 打交道的杂活交给 fastlane。前者是官方能力,后者是社区成熟实践。

一句话结论

结论 把项目切成六段:立项定 spec → 搭骨架 → 功能迭代(模拟器闭环)→ 发布准备(fastlane)→ TestFlight → 提审。开发期用 Claude Code Desktop 的 iOS Simulator pane 让 Claude 装 app、点按、读屏自检(官方能力,公测中);发布期社区普遍用 fastlane 把签名、截图、元数据、上传自动化,并让它成为唯一写 App Store Connect 的通道(第三方实践)。阶段划分本身是本站的编排。

做法步骤

  1. 立项定 spec:先别写代码。官方best practices 建议大功能先让 Claude 用 AskUserQuestion 工具访谈你——技术实现、UI/UX、边界情况、取舍——聊透后写成 SPEC.md,再开一个干净的新会话去实现。做法详见 访谈出 spec。预期产出:一份写明验收标准的 SPEC.md。
  2. 搭骨架:Xcode 建好空项目后,跑 /init 生成 CLAUDE.md,把构建/测试命令、目标机型、代码风格写进去。本站观点iOS 项目尤其要把「怎么 build、怎么跑测试」写清,后面每一轮迭代 Claude 都靠它自检。
  3. 功能迭代 + 模拟器闭环:在 Claude Code Desktop(macOS)里开发,对 Claude 说「build the app and run it in the simulator to check the onboarding flow」这类任务时,iOS Simulator pane 会自动打开:Claude 安装 app、自己点按、读屏幕验证改动,你在旁边看,也可以自己上手点。官方要求:Claude Desktop v1.24012.0+、装了 iOS 平台的 Xcode 26.x(暂不支持 Xcode 27);公测中,Pro/Max/Team 可用,Enterprise 不可用;仅本地会话。每台模拟器首次使用需授权,截图会发送给 Anthropic——别在测试设备上登真实账号。想指定机型就直接说,如「run it on the iPhone SE simulator」。每完成一个功能,让 Claude 对照 SPEC.md 在模拟器里走一遍流程并贴截图证据(见下方 prompt),这就是可自我验证的完成闭环;更多细节见 iOS 模拟器验证
  4. 发布准备(fastlane):第三方fastlane 是社区标准的 iOS 发布自动化工具,把 archive、签名、截图、元数据上传、提审做成可重复的「lane」。社区有现成的 Claude Code skill(greenstevester/fastlane-skill),装上后用自然语言「Set up Fastlane for my iOS app」即可让 Claude 读你的 Xcode 项目生成配置。第三方一线经验(theyawns.com 的 BaseballScorer 系列):让 fastlane 成为唯一向 App Store Connect 写入的通道,App Store 文案放在 repo 里当唯一事实源,不要在网页后台手改——两个事实源必然打架。
  5. TestFlight:第三方同一来源的 beta lane 实践:bump build → archive → 上传 TestFlight → 成功后才打 git tag(把「上传失败别烧掉版本号」做进控制流,而不是靠人记)。真机测试注意:官方Claude 只能驱动模拟器,不能控制物理 iPhone/iPad——真机上自己跑,把看到的问题截图发回给 Claude 修。
  6. 提审:本站观点让 Claude 起草 App Store 描述、隐私说明、审核备注(reviewer notes),存进 repo 走 fastlane 提交;提审材料是给 Apple 审核员看的,发出前自己通读一遍。被拒了把拒信原文贴给 Claude 分析整改。

可直接抄的 prompt

功能迭代期,每合入一个功能就跑一次这个验证闭环(在 Claude Code Desktop 本地会话中):

把刚才的改动在 iOS 模拟器里完整验证一遍:
1. build app 并在模拟器里启动,有编译错误先修复再继续;
2. 从冷启动开始走一遍「新用户首次打开 → 完成核心操作」的主流程,每个关键界面截图;
3. 对照 SPEC.md 的验收标准逐条检查,列出不符合项,修复后重新走流程;
4. 全部通过后,贴出关键截图和你运行过的命令作为证据,不要只说「已完成」。

进入发布期,可以这样开场(需已安装 fastlane 相关 skill 或让 Claude 现学):

帮我给这个 iOS 项目配置 fastlane:
1. 读取 Xcode 项目,生成 Fastfile,建一条 beta lane:检查在 main 分支且工作区干净 →
   bump build number → archive → 上传 TestFlight → 上传成功后才 commit、打 tag、push;
2. App Store 元数据(描述、What's New、关键词)放在 repo 的 docs/ 目录作为唯一事实源,
   由 fastlane 负责同步,任何时候不要让我去网页后台手改;
3. 跑一次 dry run,把会执行的步骤和需要我手动提供的凭据/权限列成清单。

来源与最后核实日期