
我是一个拥有 10 年开发经验的 Web 开发工程师,主要专注于后端开发。虽然我也曾两次尝试学习开发 App,但都因为门槛太高没能入门就放弃了。
这次借助 AI Vibe Coding 模式,我成功开发并上架了一款 App —— PATimer。这是一款倒计时提醒应用,目前已经发布了 Mac OS 版本。
在这篇文章中,即使你像我一样对 Xcode 充满恐惧,也能了解到如何利用 AI 克服这些障碍。

在开发过程中,我使用了多种 AI 工具,主要包括 Codex、Claude Code 以及 Google 的 Antigravity。
Claude Code:在实现具体功能时体验非常棒,开发效率极快,给人的感觉就像是真正的“结对编程”。强烈推荐安装 superpowers。举个例子:当我告诉它“我想做一个倒计时结束后的全屏提醒功能”时,它没有直接写代码,而是利用 superpowers 问我:“全屏提醒是否需要强制置顶?是否需要播放声音?如果用户在开会(勿扰模式)该如何处理?” 这些细节我自己一开始完全没想到,确认完这些细节后它生成的代码几乎一次通过。
作为一个 Web 开发者,我必须坦白:我非常讨厌,甚至惧怕和 Xcode 打交道。
它的功能实在太多、太复杂了。但是现在有了 AI,情况完全不同了。你只需要按照 AI 给出的步骤一步步操作即可。对于一些复杂的流程,我在询问完 AI 后,会特意让它总结生成一份 Markdown 文档,保存在项目的 docs 文件夹中,以备后用。
我还把这个 App 扩展到了 iOS 平台,开发起来也非常快。
我认为跨平台语言或者工具在 Vibe Coding 时代完全毫无意义了。以前我们为了节省开发成本使用 Flutter 或 React Native,但在 AI 能够快速生成原生代码的今天,直接使用 Swift/SwiftUI 开发原生应用,不仅体验最好,开发效率也被 AI 极大抹平了。

开发 App 比较麻烦的另一个环节是上架,因为需要填写一大堆资料,这是我很头疼的事情。
在这次开发过程中,我也踩了不少坑,总结下来希望大家能少走弯路:
我的 App 第一个版本是付费下载版,审核通过后也有用户购买了。但在第二个版本中,我决定改成“免费下载 + 内购”的模式。
我想做一个功能:把之前已经付费购买的用户自动转换为已内购的高级版用户。我让 AI 帮我实现了这个逻辑,结果提审被拒,改了几次都失败了,浪费了好多天的时间。苹果审核人员说功能有问题,而我自己测试起来也非常麻烦,因为无法完美模拟之前的付费环境。
在几次提审失利后,我索性删掉了这个“自动迁移”的功能。反正当时只有一个付费用户,我打算到时候直接发一个兑换码给他作为补偿。
教训:一开始就应该规划好是做 付费版 还是 内购版。后期改动不仅代码逻辑麻烦,审核也是个大坑。
说到内购,很多新手(包括我)一开始不知道怎么在本地测试。其实 Xcode 提供了很方便的本地测试功能:
这样你就可以在模拟器中完美模拟内购流程了。切记:测试完准备打包上架时,记得把这个选项改回 None,否则提交审核会出问题。
我的 App 需要通知功能,但我需要的是 本地通知(Local Notification),而不是 远程推送(Remote Push)。这两个功能要求的权限不同,配置也完全不一样。
但 AI 默认以为我需要的是远程推送,不仅代码写错了,还导致我提交审核时上传失败报错。这个问题我很困惑,直到让 AI 查了很久日志才发现是配置错了。
关键是这个问题我犯了两次!就像我在 X 上看到 yetone 的帖子所说,我们确实需要一个“尸检报告”。我们要把之前犯错以及修复的过程,让 AI 总结到一个专属的文件夹中,每次开始新任务前让 AI 先读一下,不要再次犯错,以免浪费 Token 和时间。
开发这个 App,我觉得自己花的最多的时间其实是 模拟和真机的体验与调试。AI 很快就能把功能写出来,但 UI 的细节调整、交互的流畅度,都需要在设备上反复体验和打磨。
有了 AI Vibe Coding,像我这样对 App 开发一窍不通的后端工程师,也能独立完成从开发到上架的全过程。如果你也有想法,不妨现在就开始动手吧。