用AI开发iOS应用:常见陷阱与检查方法
作者:Mehdi Azizi
更新于 ,9分钟
AI能快速写iOS代码,但签名、订阅、苹果审核和真机崩溃它常出错。本文教你逐项检查。
用 AI 开发 iOS 应用:简短回答
可以,就算你是新手,也能用 AI 开发 iOS 应用。这种开发方式有个名字,叫氛围编程(vibe coding)。Claude、ChatGPT 或 Cursor 写界面、导航、简单逻辑和数据库调用都写得很好。它们做不好的,是代码之外的一切:应用签名、App Store Connect 配置、订阅、苹果审核,以及只在真机 iPhone 上才会出现的崩溃。
换句话说,AI 在最显眼的那部分工作上帮你省下好几周,却把决定你的 app 能不能上线的那部分留给你自己。这篇指南告诉你界线在哪里、怎么引导 AI 让它一直有用,以及怎么在苹果或你的用户替你发现问题之前,先检查它产出的东西。
我每天都用 Claude 和 Cursor 开发自己的 iOS 应用。Solys(一款带小游戏的闹钟)和 TradaZen(一款交易模拟器)已经上架 App Store。Nolera 和 Clic 曾被苹果拒绝,后来改好了。下面所有内容都来自这些实际工作,不是演示。如果你还在纠结用哪个工具,我在另一篇指南里比较了开发 iPhone 应用时的 Claude Code、Cursor 和 ChatGPT。
AI 真正擅长的事
界面和导航
把一个界面描述清楚(显示什么、每个按钮做什么、列表为空时怎么办),AI 几秒钟就能给你一个干净的组件。这是提速最惊人的地方,尤其是用 React Native 和 Expo 时,因为 AI 见过大量这类代码。这也正是我所有 app 用的技术栈,原因我在用 React Native 和 Expo 开发移动应用这一页里讲了。
简单的业务逻辑
计算分数、排序列表、格式化日期、校验表单:AI 做得又快又不错,前提是你把边界情况告诉它。空列表、过长的输入、另一个时区的日期。你不点名,它不一定会处理。
解释你看不懂的东西
这是最被低估的用法。贴一条报错、一段配置或一条苹果的拒绝信息,然后说“给我解释这是什么意思,先别改”。你会比看教程学得更快,因为解释针对的是你自己的项目。
接入后端
在 Supabase 里建表、写一个读取当前登录用户数据的函数、处理加载状态:AI 对这些工具很熟。只是要盯着安全问题,后面会讲。
用 AI 开发 iOS 应用时,AI 会漏掉什么
这部分是那些“我一个周末做了个 app”的视频里没人给你看的。其中每一点都可能让你的发布卡上好几天,更别提上传时的自动检查,比如针对非公开 API 的 ITMS-90338。
签名和证书
要在 iPhone 上运行并上架 App Store,你的 app 必须用和你的 Apple Developer 账号绑定的证书和描述文件(provisioning profile)签名。AI 能给你讲原理,但没有授权访问,它并不了解你的账号。它有时会编造已经不存在的步骤,或者把 Xcode 的方法和 Expo 的方法混在一起,上传时就可能出现 ITMS-90034。用 EAS Build 的话,是这个工具替你生成并管理这些文件,包括推送密钥:交给它就好,别照着猜出来的流程操作。
App Store Connect 的配置
应用信息页、Bundle ID、隐私声明、加密相关的问题、截图、使用条款链接:这些信息都必须和提交的版本一致。有些智能体可以在已登录的浏览器里操作,比如 Claude Code 配合 Chrome。这种访问必须经过授权,结果也必须核实;不看当前界面、照本宣科的流程可能已经过时。
订阅
这是 AI 最让你浪费时间的地方。付费墙(paywall)的代码很简单。难的是三个地方保持一致:App Store Connect 里创建的产品、它们在 RevenueCat 里的配置,以及展示它们的代码。一个标识符差一个字符,或者某个产品没跟版本一起提交审核,你的付费墙在审核员那里就会显示为空。如果你给了 AI 合适的权限,它可以读取这些后台;没有这些权限,它就没法核对它们和代码是否一致。完整流程见 iOS 应用内订阅这一页。
苹果审核
AI 知道 App Review Guidelines 的大致内容,但它不会用审核员的眼光看你的 app。它不会主动告诉你:某个必需的界面在小屏 iPhone 上被截断了、评分请求弹得太早、审核备注里缺了演示账号,或者你的 app 太像一个网站,触犯准则 4.2。前两个是我在 Solys 上真实吃过的拒绝,写在苹果为什么拒绝你的 app里。
真机 iPhone 上的崩溃
模拟器和开发版 app 能容忍很多问题。生产环境下的真机 iPhone 不会。构建里缺了某个原生模块、某个权限没写说明文字、启动时过早读取数据:app 打开就立刻闪退,没有任何提示。智能体可以跑测试或分析截图,但前提是验证环境允许。模拟器上的结果本身并不能证明装在你 iPhone 上的二进制没问题。每次提交之前,都得你自己把 app 装到手机上,TestFlight 就是干这个的。
AI 写出的代码看起来是对的。只有在你的 iPhone 上测试,才知道它是不是真的对。
怎么引导 AI,让它一直有用
问题几乎从来不在模型够不够聪明,而在你给它读了什么。
一次性把上下文交代清楚
在项目根目录写一个简短的文件,说明你的技术栈(Expo、SDK 版本、Supabase、RevenueCat)、目录结构和你的规则。Claude Code 会读 CLAUDE.md 文件,Cursor 有自己的规则文件。没有这些上下文,AI 只能猜,而且经常猜成别的技术栈。我的用 Claude Code 开发应用教程里有这个文件的完整示例。
拆成小任务
“给我做一个带订阅的习惯追踪 app”会产出一个庞大又脆弱的项目。“做一个列出今日习惯的界面,包含空状态和加载状态”会产出一个你五分钟就能看完、测完的界面。一个任务,一个可验证的结果,然后下一个。
先要计划,再写代码
凡是涉及多个文件的改动,先说“给出计划,先别写代码”。你审一遍计划,改掉不对的地方,再让它动手。这样就能避免那种为了加一个按钮、AI 把你半个项目重写了的意外。
让它读最新的文档
这些工具变化很快:Expo、RevenueCat 和 App Store Connect 都在不断更新。觉得某个回答可疑时,把官方文档页面贴进对话,或者用一个能把文档提供给它的工具。读今天文档的 AI,比记着两年前文档的 AI 犯错少得多。
决策权握在自己手里
AI 提建议,你做决定。选什么点子、定什么价、app 不做什么:这是你的工作。如果你让 AI 把它建议的每个功能都加上,最后得到的是一个十件事都做得一般的 app,而不是一件事做得很好的 app。要给第一个版本划定范围,看看 iOS 应用 MVP 这一页。
怎么检查 AI 产出的东西
能发布上线的人和攒了一堆半成品的人,差别就在这项能力上。
每次修改都要过一遍
你不需要逐行看懂。但你得能回答三个问题:改了哪些文件、为什么改、是不是符合我的要求。如果 AI 动了一个和你的需求无关的文件,接受之前先问它为什么。
在你的 iPhone 上测试,不只在电脑上
尽早把 app 装到你自己的手机上,之后每到一个重要阶段都装一次。检查安装后的首次启动、飞行模式、小屏和大屏、表单上键盘弹出的情况。我每个 app 每次提交给苹果之前,都按这条规则来。
加上能看到你看不到的东西的工具
在我的 app 里,Sentry 会上报崩溃并指出出错的代码行,PostHog 会显示用户在哪里流失。没有它们,生产环境的 bug 一直是隐形的,直到差评出现。AI 可以帮你装好它们;看它们告诉你什么,是你的事。
盯紧数据安全
AI 在 Supabase 里建表时,检查访问规则(RLS 策略)是否真的启用了:每个用户只能读取自己的数据。还要检查 app 代码里没有混进任何密钥,因为 app 代码可以被反编译。这两个错误,你不明确禁止的话,AI 很容易犯。
反过来问它
代码写完后,问:“这里什么地方可能出问题?”或者“像苹果审核员一样审查这段代码”。写代码的同一个模型,换个提问角度,常常能找出自己的疏漏。这代替不了你在 iPhone 上的测试,但能减少来回折腾。
新手的现实路线
- 选一个极小的点子:一个核心功能,不是十个。
- 装一套 AI 熟悉的技术栈:Expo、React Native,需要账号系统的话再加 Supabase。
- 一个界面一个界面地做,每次请求一个小任务,每一步都测试。
- 在你的 iPhone 上测试,先用开发构建,再用 TestFlight。
- 接入收费:在 App Store Connect 里创建产品、RevenueCat、付费墙。
- 准备 App Store 资料:应用信息页、截图、隐私、给审核员的备注。
- 提交给苹果,仔细阅读回复,按要求修改。
每一步都有坑,AI 能帮你避开其中一半。想看全貌,开发 iPhone 应用这一页详细讲了完整流程。如果你想知道完全不自己写一行代码能走多远,看看不写代码开发应用。
用 AI 开发你的 iOS 应用,一直到上架 App Store
AI 改变了谁能开发 iOS 应用。它没有改变苹果对上架的要求,也没有改变 app 拿到第一批订阅收入需要做的事。这部分我都放进了 iOS Kit:我自己 app 的起步代码(包括订阅),以及每一步的 Claude Code skills。按你用的工具,流程有详细说明:Claude Code 培训或氛围编程培训。首页一步步展示了怎么用这种方式开发移动应用。
不知道卡住你的是代码、AI 还是苹果?免费诊断会告诉你,并把我的苹果防拒审核清单发给你。
我不承诺收入,也不承诺能上架:审核通不通过由苹果决定,其余的由市场决定。我给你的,是我自己在 app 上实际用的方法。
常见问题
新手能用 AI 开发 iOS 应用吗?
能。AI 写界面、导航、简单逻辑和数据库调用都写得很好。它做不好的是代码之外的一切,包括签名、App Store Connect、订阅、苹果审核,以及只在真机 iPhone 上才出现的崩溃。
开发 iOS 应用该用哪个 AI?
Claude、ChatGPT 或 Cursor 写界面、导航和简单逻辑都写得很好。问题几乎从来不在模型够不够聪明,而在你给它读了什么。把你的技术栈、规则和最新文档给它。我在另一篇指南里比较了开发 iPhone 应用时的 Claude Code、Cursor 和 ChatGPT。
ChatGPT 能开发应用吗?
看得见的那部分可以:ChatGPT 和 Claude、Cursor 一样,写界面、导航、简单逻辑和数据库调用都写得很好。但没有授权访问,它并不了解你的苹果账号,也不会用审核员的眼光看你的 app。只有在你的 iPhone 上测试,才知道代码对不对。
怎么一步步用 AI 开发自己的应用?
选一个极小的点子,只做一个核心功能。装一套 AI 熟悉的技术栈:Expo、React Native,需要账号系统的话再加 Supabase。一个界面一个界面地做,每次请求一个小任务,每一步都测试。先用开发构建、再用 TestFlight 在你的 iPhone 上测试,然后再接入收费、准备 App Store 资料并提交给苹果。
怎么检查 AI 写的代码?
每次修改都过一遍:改了哪些文件、为什么改、是否符合你的要求。尽早把 app 装到你自己的 iPhone 上,之后每到重要阶段都装一次。检查 Supabase 的访问规则,也就是 RLS 策略,是否已启用。还要检查 app 代码里没有混进任何密钥,因为 app 代码可以被反编译。
为什么 AI 写的付费墙在审核员那里显示为空?
付费墙的代码很简单。最难的是三个地方保持一致:App Store Connect 里的产品、它们在 RevenueCat 里的配置,以及展示它们的代码。一个标识符差一个字符,或者某个产品还没提交审核,付费墙就会是空的。没有这些后台的合适权限,AI 就没法核对这种一致性。