一位独立开发者借助 GPT-6 Astra,在没有手写一行代码的情况下,完成了付费产品的移动端开发。从业务逻辑、跨平台订阅系统对接,到应用商店出图与审核沟通,AI Agent 正在重构个人开发者的工作范式。

在这次移动端开发的后半程,比起代码本身,我把更多精力放在了浏览器标签页上。
Expo、RevenueCat、App Store Connect,切回 App,切回终端。支付报错、修复、重新打包、再次测试。
GPT-6 Astra 正在 Codex 桌面端里逐项处理这些琐事,而我发给它的指令越来越简短:
“现在测一下。”
“下一步是什么?”
“搞定没??”
说简短是调侃,但我对它的工作能力完全是认真的。
做整个移动端,我一行代码都没写。 所有代码的新增与修改都由 Astra 操刀。我的工作变成了:描述需求、圈出不对劲的地方、上手实测,并在关键节点做决策。
看着它一路搞定支付集成、生产打包、应用商店截图,直到把 App 提交到苹果审核后台,那种感觉就像拥有了一个真正的贾维斯(Jarvis)。
作为一个深知“App 能跑”和“用户能用”之间隔着多少脏活累活的开发者,这种震撼格外真实。
我的产品叫 SupWriter,主要帮用户润色文本、转换句式、纠正语法,并检测内容是否带有 AI 生成痕迹。
它的 Web 端已经有稳定收入和付费订阅用户。做移动端的动机很直接:用户一直在催。
用户希望在手机上随时使用。我则需要统一的账号体系、一致的写作工具,以及跨端通用的订阅方案。
在此之前,我们已有成熟的网页端和做了一半的移动端雏形。这次任务的目标非常清晰:把移动端彻底做完,连上真实后端,测通所有流程,并提交给苹果审核。
这意味着我们必须兼容现有的商业逻辑。用户账号已经存在,网页端付费也已跑通,积分消耗需要严谨核算。手机上的新订阅绝不能覆盖掉老用户原本的权益。
放在以前,这种跨系统整合通常需要消耗我一半的时间去翻开发文档,另一半时间用来辨认到底该打开哪一个控制台后台。
核心逻辑很简单:让 Astra 接管代码库,给它相应的工具权限,然后不断要求它运行刚刚修改过的东西。
随着沟通深入,我的指令沉淀出了一套固定模式:
读懂现有逻辑;做出修改;跑检查脚本;打开 App 实测链路;如果失败,排查真实根因并修复;持续验证直到确认无误;只有遇到需要我本人授权的事情时才叫我。
这并非某种神奇的固定 Prompt,而是一套可复用的闭环工作流。

我不断把 App 的运行截图甩给它。有时附带详细复现步骤,有时干脆只有一张截图配上一句“这怎么回事???”。
Astra 会根据报错去查界面背后的代码,调出对应服务排查,修改后再次运行检测,最后回到界面。我的下一张截图,就是它下一轮调优的输入。
我还让它负责盯构建进度。无论是等待打包还是等待苹果后台处理,都变成了它自动轮询的工作,我不需要自己守着网页反复刷新。
这种闭环让开发体验变得非常顺畅。 我可以把全部注意力放在产品逻辑本身,实现层面的脏活全交由 Agent 处理。
这款 App 基于 Expo 和 React Native 构建。Expo 负责打包,RevenueCat 负责苹果内购订阅,App Store Connect 承载商品配置、安装包与上架审核。
底层的全栈架构还包括用于账号与数据的 Supabase,处理分析埋点的 PostHog,以及负责网页端收款的 Dodo Payments。
这意味着工作内容不仅散落在源码、命令行里,还分布在需要鉴权的网页后台和运行中的客户端上。需要配置控制台时,Astra 能通过浏览器直接点选;需要排查代码时,它能切回源码定位。

以接入 RevenueCat 为例。“加个支付”听起来只是一句话,实际做起来却充满细节:必须正确配置订阅产品、价格、权限组(Entitlements)、后端回调,以及购买成功后的 UI 状态即时更新。
所谓权限组,就是用户付费后能解锁哪些权益。在 SupWriter 里,应用必须立刻知道用户当前处于哪档套餐、还剩多少积分。
仅仅弹出苹果的支付弹窗并扣款成功,只是整个链路的最外层。
联调初期,付费弹窗经常提示“套餐暂时不可用”。我和 Astra 一起调试订阅规则,直到所有商品正常拉取,苹果的内购确认弹窗顺利弹出。
随后,我通过 TestFlight 购买了基础版(Basic)。扣款成功,账号正确获得了 5000 积分。
接着我发起升档,升级到专业版(Pro)。扣款成功了,但个人中心依然停留在 4987 积分(基础版的扣除后余额)。
切出当前页面再切回来,App 重新拉取了数据,这才正确显示为专业版和 15000 积分。
这是一个非常典型的暗坑,隐藏在用户的日常吐槽里:“我钱都付了,怎么没反应?”
Astra 随后重写了数据刷新逻辑,确保购买完成后立即刷新账号状态。之后我再次测试升级到旗舰版(Ultra),30000 积分当场正确到账。
我们还遇到了年付套餐切换的逻辑异常。排查后发现,必须区分“即时生效的升档”与“周期结束才生效的换档”。如果用户选了下周期生效的计划,系统如果现在就给新积分,反而成了逻辑漏洞。
这也是我认可全托管模式的原因:Astra 能顺着一张截图,一路从 UI 追查到底层订阅机制,再把修复写回 App 内。
它甚至主动检查了网页端的账单逻辑,防止延迟或乱序的 Webhook 破坏原有的订阅记录。我们必须确保老用户的现有体验不受任何影响。

接下来的环节让我有些意外。
调试完繁琐的支付链路后,我盯着应用商店的准备页面,对 Agent 说现在的截图太糙了,拿不出手。
任务随即平滑切入了视觉设计。
Astra 配合图像生成工具出图,设计了引导页排版,并产出了全套适配 iPhone 和 iPad 的 App Store 宣传图。
最终输出了 4 张手机图和 4 张平板图。设计直接采用真实的 App 截图,搭配清晰的文案与底图,让用户在下载前对功能一目了然。

我可以随时对它提要求:“权限弹窗的文案缩短一点”、“把套餐字数限制改一下”、“换个更好的引导图背景”,紧接着让它把切好的图片同步上传到 App Store Connect。
整个工作流完全没有被打断。我不需要先找设计师对需求,再找移动端开发改代码,最后找运营去填苹果后台的表格。
对于独立开发者来说,这种集成度带来了降维打击式的效率提升。
我让它启动 iPhone 模拟器做日常检查。我们还通过 TestFlight 测试正式包,包括在 Mac 上直接跑 iOS 版本。
测试中并非全无波折。有时候模拟器启动了旧版本的包;有时候由于应用没完全获取焦点导致支付交互中断,需要我手动点一下才弹出系统确认框。
这些意外让后续的验证变得更加严谨:当前装的到底是第几版?跑的是本地模拟器还是 TestFlight?是支付逻辑挂了,还是自动化脚本没点中窗口?

我们人工走完了全套核心测试:文本润色、积分扣减、历史记录、导出、订阅变更和恢复购买。我亲自验证了 Apple 登录、新用户注册获赠 300 积分,以及测试账号的注销流程。
不仅在前端看提示,我们还去后端数据库核对了账号是否被物理删除。弹出成功弹窗从来不等于测试结束。
我虽然享受这种完全由 AI 操刀的开发节奏,但最终的把关必须亲自上手。
从元数据整理、审核说明、内购详情配置,到最终提交,Astra 一路打通。第 11 个构建版本连同 6 款内购商品和订阅组,正式送审。
不出意外,苹果打回了提交。
干过 iOS 开发的人都知道,没被苹果拒过几次几乎是不可能的。
不过这次的问题很小:苹果需要我们确认,Ultra 月度套餐在美国区的定价是否符合预期。
Astra 直接打开审核后台的反馈留言,核对了对应的价格配置,在得到我的确认后,直接起草并回复了说明邮件。
截至发稿,我们正在等待二次审核结果。代码已经合入,安装包也已就绪。
Agent 没有在把代码推上仓库那一刻就撂挑子,而是把服务一直延伸到了应用商店审核的最后一公里。
在整个流程中,我依然承担着核心职责:控制账号权限、确认商业逻辑、处理欧洲交易者资质声明、在生产数据库执行迁移脚本,以及拍板决定何时合并分支与提交审核。
同时,我频繁插手给出产品层面的反馈:文案太长了、额度刷新有延迟、拉起的分支不对、商店图需要重做。
这些工作占据了大量时间,但我彻底从枯燥的“写代码实现”中解脱了出来。
过去,我习惯把 Astra 当作方案规划者,代码交给成本更低的轻量模型去敲。但在这次冲刺里,我把中间的实现细节也全盘交给了它。从处理支付、同步状态,到操作浏览器和实机打磨,将这套庞杂的任务放在单一上下文中闭环推进,价值巨大。
这并不意味着开发变成了纯粹的“一键生成”。我需要反复向它确认进展,一些顽固 Bug 需要多轮交互才能排查清楚,很多在一个环境跑通的改动,到了真机依然得复测。
但我真正拥有了一个极度能干的协作搭档。我可以把精力完全收拢到业务表现、收益权衡,以及“这东西到底配不配摆在付费用户面前”。
这就是这一代 AI 代理最吸引人的地方:它能写代码,能用工具,能观察屏幕上的实际反馈,并根据拿到的结果把事情做完。
用户想要移动端。现在,一个跑在 TestFlight 上、完全打通既有业务、甚至连一审回复都处理妥当的商业 App 已经成型。
我一行代码都没写。我把时间全花在了确保它是一门好产品上。
免费获取企业 AI 成熟度诊断报告,发现转型机会
关注公众号

扫码关注,获取最新 AI 资讯
3 步完成企业诊断,获取专属转型建议
已有 200+ 企业完成诊断