5 天把 iOS App 推到送审,我发现最难的不是写代码
这次我没有手写任何一行代码。
一个 iOS App,从想法到 App Store 审核前,大概花了 5 天。
中间 3 天左右在 vibe coding,消耗了差不多 6 个 GPT Plus 周额度,项目里最终有接近 200 个 commit,基本都是 GSD 自动提交出来的。
我自己做过的最像“开发”的动作,是在 Xcode 里点了一下 Archive。
听起来很像那种“AI 替我完成一切”的故事。
我也差点这么理解。
不对,准确说,是前两天我确实有点上头。看着 commit 一个个冒出来,App 在模拟器里跑起来,人很容易飘。
但做完之后,我反而没那么兴奋。
因为最明显的感受不是:代码终于不用写了。
是另一个更麻烦的东西浮出来了:当 AI 真的能把 App 写出来,你会更快撞上产品交付本身。
需求从哪来?第一版到底做什么?什么时候停?截图怎么讲清楚?隐私页怎么写?支持页放哪?Bundle ID、App Store Connect、审核说明、Logo、版本收口,谁来确认?
这些东西不会因为 Claude Code 会写 SwiftUI 就消失。
它们只是更早来找你。
我以前会觉得,一个 iOS App 能在 Xcode 里跑起来,就已经差不多了。
这次之后,我的判断变了。
Xcode 能跑,只是 demo。App Store 能提交,才开始像产品。
不是先写代码,是先找用户抱怨
这次我没有从 Xcode 开始。
我先去抓 App Store 相关竞品评论。
尤其是差评、抱怨、反复出现的需求,还有那种用户已经说得很具体的句子:要是能怎样就好了,为什么这个地方这么麻烦,为什么我花了钱还这样。
这些评论比“我想做一个什么 App”靠谱。
因为脑子里的想法很轻,评论里的不满有重量。
我把这些评论交给 AI,让它做的不是“帮我想一个产品”。
而是拆几个问题:
-
• 用户到底在抱怨什么; -
• 哪些抱怨反复出现; -
• 哪些功能只是表层表达,背后其实是一个场景; -
• 哪些需求可以成为第一版 MVP; -
• 哪些功能看起来诱人,但应该砍掉。
这里有个坑。
AI 很容易给你一个完整方案,甚至完整得让人心动。功能列表、用户画像、页面结构、商业模式,全都给你摆出来。
看着很爽。
也很危险。
因为 MVP 不是“小号正式版”。MVP 是一个最小学习机器。
它只需要帮你回答一个问题:这个需求是不是真的,用户愿不愿意试,值得不值得继续做。
如果需求是脑补出来的,Claude Code 写得越快,只是浪费得越快。
这也是我这次最想保留的第一条经验:
需求来自真实评论,不来自脑补。
GSD 不是魔法,它只是让 AI 不乱跑
有了项目描述之后,我才进入开发流程。
这次主要是 Claude Code + Xcode,再加 GSD skill。
但我不想把它写成工具教程。
工具名没有那么重要。
真正有用的是,GSD 把“让 AI 写一个 App”这件事,从一句模糊 prompt,变成了一套可以讨论、可以执行、可以验收的流程。
我用的大概是这几步:
gsd:new-project,先把项目描述丢进去,让它拆任务。
gsd:discuss-phase,专门讨论灰区。
比如数据存本地还是上云,第一版要不要登录,要不要订阅,哪些边界情况先不管,UI 到底是先能用还是先好看,用户反馈入口放在哪里,隐私政策要怎么承诺。
这些问题不问,AI 就会自己猜。
它猜得可能很合理。
但那不是你的产品判断。
然后是 gsd:autonomous,按 plan + execute phase 往前推。
这一步很有体感。
不是你一轮一轮跟 Claude Code 说“继续”“修一下”“再改一下”,而是它围绕 phase 往前跑,边做边留下 commit。
这次从 0 到 1,项目里接近 200 个 commit。
我看到这个数字的时候,第一反应不是“哇,好多”。
是松了一口气。
因为 agent 写代码最怕失控。它改了很多文件,跑了很多轮,最终你不知道发生了什么,哪里开始坏的也找不回来。
commit 不会让项目自动变好。
但它让你有回头路。
后面用 gsd:complete-milestone 收口,把阶段完成掉,目标是封成 v1.0。
这里我觉得挺关键。
独立开发者最容易被新功能诱惑拖死。今天加一个设置页,明天加一个登录,后天又想做订阅。看起来一直在进步,其实永远没有一个可以拿出去验证的版本。
后面有新想法,我会更倾向于用 gsd:capture 先收起来。
不要打断当前上线流程。
先把 v1.0 推出去。
很土。
但有效。


这两张图不是为了证明工具多厉害。
它们证明的是另一件事:这个过程不是“和 AI 聊了几句就变出一个 App”,而是一轮一轮拆任务、执行、提交、收口。
App 跑起来以后,真正麻烦的部分才开始
Xcode 里能跑起来之后,我以为剩下就是上架。
不对。
剩下的是另一套工作。
App Store 上架需要一堆“看起来不像开发”的东西:截图、描述、关键词、副标题、Support URL、Privacy Policy URL、Logo、App icon、Bundle ID、SKU、Review notes、Archive、build、审核信息。
这些东西很碎。
碎到有点烦。
真的烦。因为它们不会给你那种“我又写完一个功能”的爽感,只会让你一遍遍检查字段、尺寸、URL、审核说明。你会本能地想逃回 Xcode,继续加功能。
但它们才是产品开始进入真实世界的入口。
Bundle ID 是产品身份。
隐私页是信任入口。
支持页是用户能不能找到你的入口。
截图是第一次销售。
App Store 文案不是广告作文,它要同时让用户看懂、让平台字段合规、让审核人员知道怎么测试。
这次 screenshots 我用了 app-store-screenshots skill。
但我很快发现,截图这件事不能理解成“把界面截出来”。
用户还没下载你的 App,先看到的是截图。
每一张图最好回答一个问题:
这是什么?
它解决我什么问题?
为什么我现在要下载?
和别的 App 有什么不一样?
如果只是把界面摆上去,用户看不懂,审核之外的那一关就已经输了。
App Store Connect 文案也可以让 Claude Code 先生成,包括描述、副标题、关键词、审核说明、版本说明。
但这类文案不能无脑复制。
尤其是隐私、支持、审核信息。
Privacy Policy 不是糊弄平台的作文。你写了什么,就等于对用户和平台公开承诺了什么。
Support URL 也不是随便放一个主页。用户出了问题,要真的能找到你。
Logo 更是一个现实的提醒。
代码可以 vibe。
Logo 不要太 vibe。
这次 logo 仍然需要人工制作。我用了 SF Pro + Icon Composer 做一个足够干净、可识别的版本,再放进 Xcode。
不一定要惊艳。
但至少不能廉价。

这张图也让我意识到,截图不是“补材料”。
它是用户第一次理解这个 App 的入口。
真正跑通的不是工具,是交付链路
如果只列工具,这次用到的东西不少。
Claude Code、Xcode、GSD、app-store-screenshots、App Store Connect、Notion 或 Google Docs、SF Pro、Icon Composer。
列多了,很容易变成工具堆叠炫技。
但我现在越来越觉得,工具只是执行器。
真正跑通的是这条链路:
竞品评论里找需求 → AI 总结问题 → 生成 MVP 方案 → GSD 拆任务 → Claude Code 执行 → Xcode 验证 → 自动 commit → milestone 收口 → 生成截图和文案 → 准备隐私 / 支持页 → App Store Connect 提交审核。
这条链路比某个工具更重要。
因为工具会变。
今天是 Claude Code,明天可能是别的 coding agent。今天是某个 screenshots skill,明天可能换成另一个生成器。
但需求、执行、版本、上架、反馈,这几个环节不会消失。
以前你可能写三周代码,才发现自己还没有产品定位。
现在你可能三天就写完了,第四天发现自己没有截图、没有隐私页、没有支持页、没有审核说明、没有明确的用户反馈入口。
AI 加速的不是成功。
AI 加速的是反馈。
这句话听着像鸡汤。其实不是。更难听一点说,AI 会让你的短板暴露得更快:以前你还能用“我还没写完”挡一挡,现在不行了,App 已经跑起来了,你还没准备好把它交到用户面前。
它让你更快看到:你到底缺的是代码,还是产品交付能力。
这个判断有点扎心。
因为它意味着,AI coding 不是让独立开发者从此不用做产品了。
刚好相反。
它让你更快从 coder 的位置,被推到产品负责人的位置。
你要判断什么值得做,什么不做,什么时候停,什么时候上线,哪些事情可以让 agent 生成,哪些事情必须自己确认。
如果重新来一遍,我会按这个顺序做
如果你也想用 Claude Code + Xcode 做第一个 iOS App,我不建议一上来就问:
“怎么让 AI 帮我写一个 App?”
这个问题太早了。
我会先问另一个:
“我能不能从竞品评论里找到一个足够小、足够真实、适合 5 天内上线验证的问题?”
然后再走这条顺序:
-
1. 抓竞品评论,找真实抱怨; -
2. 让 AI 总结需求和 MVP 方案; -
3. 用 gsd:new-project创建项目; -
4. 用 gsd:discuss-phase讨论灰区; -
5. 用 gsd:autonomous推进计划和执行; -
6. 用 gsd:complete-milestone收口 v1.0; -
7. 新想法用 gsd:capture收集,不打断上线; -
8. 用 app-store-screenshots做商店截图; -
9. 让 Claude Code 起草 App Store Connect 文案; -
10. 准备 Support / Privacy URL; -
11. 人工确认 logo、icon、账号、证书、隐私承诺; -
12. 登录 App Store Connect,新建 App,填写字段,提交审核。
这不是最优雅的流程。
甚至有点笨。
但它有一个好处:你不会把 MVP 做成一个永远在本地运行的半成品。
我现在对“0 行代码做 App”这件事反而没那么激动。
真正让我有感觉的是,我第一次把 AI coding 变成了一套从需求到送审的产品交付系统。
AI 负责生成、整理、检查。
人负责确认和提交。
中间那条线,千万别弄反了。
发布信息
-
• 备选标题 1:0 行手写代码,5 天把 iOS App 推到上架审核 -
• 备选标题 2:Xcode 能跑不算完:Vibe iOS App 从 0 到 1 全流程 -
• 摘要:我用 Claude Code + Xcode + GSD 跑了一次 iOS App 从需求到送审的完整流程。真正的结论不是 AI 多会写代码,而是 App Store 能提交才开始像产品。 -
• 标签:Claude Code、AI 编程、iOS 开发、独立开发、App Store -
• 关键词:Claude Code、Xcode、GSD、iOS App、App Store、MVP、Vibe Coding
夜雨聆风