手把手教你用 Codex 做一款 iOS App:零代码基础完整指南
不用会写代码。一句话喂给 OpenAI Codex,它自己写、自己跑、自己修 bug。
这篇文章不是”AI 玩具 demo”,是一份能让你把脑子里的小工具,真的装进自己 iPhone 主屏的全流程实操手册。从准备工作到 TestFlight 发布,每一步都有踩坑记录。

一、准备工作:你需要什么
|
|
|
|
|---|---|---|
| ChatGPT Plus / Pro |
|
|
| 一台 Mac |
|
|
| Xcode 15 或更新 |
|
|
| Apple ID |
|
|
| Git + GitHub 账号 |
|
|
| Supabase(阿里云也可以) 账号 |
|
|
| Apple Developer Program |
|
|

二、最关键的一步:想清楚你要做什么
别一上来就让 Codex 写代码。先用一张纸或笔记工具回答这 5 个问题:
-
这个 App 是干什么的?用一句话讲清楚。比如:“每 45 分钟提醒我喝水,记录今天喝了几杯” -
核心交互是什么?用户打开 App,3 秒内能完成的那件事 -
需要几个页面?初版控制在 3 个以内,首页 + 详情 + 设置,足够了 -
数据存在哪里?只存本地:UserDefaults(简单 KV)或 SwiftData(结构化数据) 需要多端同步:Supabase 或 CloudKit -
需要哪些系统权限?联网、通知、相机等,提前列进 prompt,省得后续补
写不清楚等于做不出来。Codex 不是神,你的指令模糊,它的输出就混乱。
把以上内容整理成一个PRD.md文件,第一步就让 Codex 读它,这份文档是后续所有对话的”上下文锚点”,能让 AI 始终保持方向一致性。
三、设计系统(可选,但推荐)
如果你对 UI 有要求,推荐先做一套设计系统。这样可以保证 App 所有页面的视觉风格统一。
设计系统包含什么
设计系统(Design System)是一套可复用的视觉规范。一个完整的设计系统至少包含:
- 颜色 Token:主色、辅助色、背景色、文字色
- 字号 Token:标题、正文、辅助文字
- 间距 Token:页面边距、卡片内边距、元素间距
- 组件规范:按钮(默认/点击/禁用)、卡片、输入框、列表行
- 交互规范:转场动画、手势交互、加载状态
如何让 Codex 理解你的设计
重要提示:不要直接丢截图给 Codex,它读不准。正确的做法是把你设计系统中的”底层逻辑 + 所有设计 Token + 组件清单”以 Markdown 格式输出。
具体操作可以借助 Claude.ai Design 功能生成设计规范,然后将输出整理为 Markdown 文档,喂给 Codex 让它遵循。或者你也可以直接描述你想要的风格,让 Codex 自己生成一套设计 Token。
一份可直接复用的 prompt
请为我的 iOS App 生成一套设计系统规范,以 Markdown 输出。主题:极简、苹果原生风 主色调:蓝绿色 (#2C9E8F)风格要求:- 干净留白,避免多余装饰 - 圆角 12px - 卡片阴影轻、不突兀 - 大标题 + 适量留白需要包含:颜色 Token、字号 Token、间距 Token、按钮状态、卡片样式、列表样式、空状态示意。
这份 Markdown 输出就是你的设计规范文档。后续每次让 Codex 生成新页面时,先告诉它”参考之前的设计规范文档”,就能保证视觉一致性。

四、用 Codex 写代码
一切准备就绪后,开始正式写代码。
初始 Prompt(可直接复用)
项目名: [你的项目名] 平台: iOS 16+ 技术栈: SwiftUI + Swift 5.9,使用 SwiftData 做本地存储架构: MVVM,每个页面一个 ViewModel 依赖: 仅使用 Apple 官方框架,暂不引入第三方库设计: 参考之前的设计规范文档 功能(V1 范围,不要超纲):1. 首页:[描述首页功能]2. 详情页:[描述详情页功能]3. 设置页:深色模式开关、清除历史请帮我: - 用 xcodegen 或直接生成 .xcodeproj 工程目录结构- 在 README 写明如何打开和运行- 每个文件顶部加注释说明职责 - commit 粒度尽量小,便于回滚
关键纪律
- 一次只做一个目标:先把工程跑起来 → 再做首页 → 再做详情页
- 别一次塞 10 个功能:Codex 会混乱,你更混乱
- 用 GitHub 仓库对接:让 Codex 直接推 PR,比每次手动下载 zip 高效十倍
Codex 会在云端容器里运行任务,通常几分钟到十几分钟就会出一个 PR。
五、本地运行你的 App
Codex 出 PR 后,按以下步骤操作:
-
本地 git pull拉取分支 -
双击 .xcodeproj文件(不是.xcworkspace,除非用了 CocoaPods) -
Xcode 顶部选择 Scheme 和模拟器(iPhone 15 Pro 是默认兼容选项) -
按 ▶️ 按钮或 Cmd+R
常见报错及处理
第一次运行大概率有错误,这是正常的。以下是三类最常见的错误及处理方法:
|
|
|
|---|---|
Signing for "xxx" requires a development team |
|
Cannot find type 'XXX' in scope |
|
|
|
直接截图整段报错文本贴回 Codex
|
实操经验:大部分错误 2-3 轮与 Codex 来回反馈就能解决。白屏、卡顿、闪退同理,截图 + 复现步骤丢回去,比自己逐行 debug 快得多。
养成好习惯:每次本地能跑了立刻 git commit,一句话写明做了什么。这样后面 Codex 改坏了你能秒回滚。

六、逐步添加功能与数据库
App 在模拟器里跑通后,开始迭代功能。一次只加一个。
功能迭代节奏
好的迭代节奏是:
-
「加个深色模式开关,存到 UserDefaults,启动时读取」 -
「主页加一个进度环显示今日完成率,用 SwiftUI 原生 Gauge」 -
「通知文案随机从 10 条预设中选一条」
每次让 Codex 以 PR 形式给出 diff,你 review 后再 Merge。
⚠️ 禁忌:不要同时修改 5 个东西。一旦出错,你根本不知道是哪一步改坏的。
接入 Supabase 数据库
当功能基本调试完毕,需要联网数据时,接入 Supabase。
Supabase 是一个开源 Firebase 替代品,提供 PostgreSQL 数据库、身份认证、实时订阅和对象存储。
接入步骤:
-
打开 supabase官网 注册 -
创建新项目,区域选择 Singapore(国内访问最快) -
初始化完成后,点击顶部 Connect → 选择 MCP → 选择 Codex -
复制生成的连接指令(包含 Project URL + anon key) -
将这段指令贴给 Codex,并补充你的具体数据需求
安全提醒:Service Role Key 拥有数据库完全管理权限,永远不要写进 iOS 客户端代码。客户端只能用 anon key,配合 Row Level Security(RLS)规则做访问控制。让 Codex 写完代码后,手动去 Supabase 后台检查 RLS 是否已正确开启。

七、制作 App 图标
图标是 App 的门面,建议在真机测试前先做好。
用 AI 生成图标
使用 ChatGPT、Midjourney 或即梦等工具生成。Prompt 范例:
设计一个 iOS App 图标,主题:[你的 App 功能]。风格:扁平、苹果原生风、单一主体、高识别度。 要求: - 1024 × 1024 PNG- 纯色或简单渐变的背景,不要透明通道(no alpha)- 不要画圆角矩形(系统会自动加圆角)- 主体居中,四周留约 10% 安全边界- 输出无文字、无水印
导入 Xcode
-
Xcode 左侧打开 Assets.xcassets → AppIcon -
将 1024×1024 PNG 拖入 App Store iOS 1024pt 格子 -
Xcode 14+ 支持 Single Size,一张图自动适配所有尺寸,无需切多分辨率
三个高频坑
-
❌ PNG 带 alpha 通道 → App Store 审核会被拒绝。用 Squoosh 或 ImageOptim 去掉透明层 -
❌ 图标自己画了圆角 → 系统会再加一层圆角,变成”圆角里的圆角” -
❌ 源图小于 1024×1024 → 打 Archive 包上传 TestFlight 时会直接失败 
八、真机测试
模拟器收不到推送通知,用不了相机、陀螺仪、HealthKit,这些功能必须在真机上测试。
连接与配置
-
用数据线(不是仅充电的线)将 iPhone 连接 Mac,手机上点击”信任此电脑” -
Xcode 顶部设备选择器切换到你的真机 -
Xcode 左侧项目 → Signing & Capabilities → Team 选择你的 Apple ID -
如没有账号:点 Add Account… → 登录 Apple ID → Team 下拉选择 Personal Team -
保持 Automatically manage signing 勾选 - Bundle Identifier
改为全球唯一的反域名格式,例如 com.yourname.yourappname -
按 ▶️ 运行,首次约等待 2–5 分钟(编译 + 签名 + 安装)
处理”不受信任的开发者”提示
iPhone 上安装后如果打不开并提示”不受信任的开发者”:
设置 → 通用 → VPN 与设备管理 → 开发者 App → 信任你的 Apple ID
免费账号的限制
-
App 在真机上 7 天后失效,需重新 Build & Run 续签 -
一个免费 Apple ID 最多同时安装 3 个自签 App 
九、通过 TestFlight 分发给朋友测试
需要支付 $99/年(国内 ¥688/年)的 Apple Developer Program 费用。如果只是自用,上一步的真机调试就够了。
操作流程:
-
开通 Apple Developer Program,个人账号审核约 24–48 小时 -
登录 App Store Connect → My Apps → + 新建 App -
Xcode 顶部 device 选择 Any iOS Device (arm64) -
菜单 Product → Archive(使用 Release 编译配置) -
Archive 完成后 Organizer 自动弹出 → Distribute App → App Store Connect → Upload -
上传后等 5–15 分钟,App Store Connect 中构建版本即可见 - TestFlight → Internal Testing:添加测试员邮箱,他们通过 TestFlight 客户端即可下载
外部测试(External Testing)首次需要苹果审核,通常 1–3 天,标准比正式上架宽松。

十、常见问题(FAQ)
Q1:我不会写任何代码,能用 Codex 做出一款完整 App 吗?
可以,但前提是你必须清楚地知道自己想做什么。不会写代码意味着你要投入更多时间在”想清楚要做啥”这个环节。把功能需求写清楚、分步骤推进、每次只让 Codex 做一件事,零基础完全可行。
Q2:Codex 和 Cursor、Claude Code 有什么不同?
Codex 是 OpenAI 推出的编程智能体,集成在 ChatGPT 中。与 Cursor 和 Claude Code 相比,Codex 的优势在于它可以在云端容器中独立运行代码、自动 debug,更适合从零开始的工程搭建。后两者更适合已有项目中的代码编辑和重构。
Q3:我不买 Developer Program 能运行自己的 App 吗?
可以。免费 Apple ID 支持真机调试,但有效期只有 7 天,且最多同时装 3 个自签 App。不上架 App Store、不用 TestFlight 的话无需付费。
Q4:Codex 写出来的代码安全吗?
Codex 会使用官方 API 和标准框架。主要安全风险在于:第一,不要将 API 密钥(尤其是 Supabase Service Role Key)硬编码在客户端代码中;第二,如果你接入 Supabase,务必检查 RLS 规则是否开启。这些都可以在对话中要求 Codex 注意。
Q5:做了第一版之后,想继续加功能好加吗?
Codex 的项目管理能力是其核心优势之一。只要你保持用 Git 做版本管理、每次只增加一个功能、写清楚 PR,持续迭代非常顺畅。切忌一次改太多,这是 User 端犯错的最常见原因。

写在最后
整个流程总结下来就是:
想清楚 PRD → 做设计系统(可选) → 喂 Codex 起工程 → 本地跑通 → 报错回喂 Codex → 一次一改加功能 → 接数据库/通知/权限 → 做图标 → 模拟器 → 真机 → TestFlight
一下午够用,前提是前面那一小时把”想清楚”做扎实。
难的不是代码。难的是想清楚自己要解决的具体小问题,然后愿意为它跑通最后一公里。
SunyataAI 是面向本地 AI 用户、开发者和企业的交流协作社群。每周组织公益免费的线下/线上 AI 交流分享会。如果你对我们正在做的事情感兴趣的话,一起加入我们吧!
抖音账号:sunyataai,
小红书账号:sunyataai,
负责人微信号:SunyataAI-Founder。


往期好文:
夜雨聆风