乐于分享
好东西不私藏

手把手教你用 Codex 做一款 iOS App:零代码基础完整指南

手把手教你用 Codex 做一款 iOS App:零代码基础完整指南

不用会写代码。一句话喂给 OpenAI Codex,它自己写、自己跑、自己修 bug。

这篇文章不是”AI 玩具 demo”,是一份能让你把脑子里的小工具,真的装进自己 iPhone 主屏的全流程实操手册。从准备工作到 TestFlight 发布,每一步都有踩坑记录。


一、准备工作:你需要什么

项目
是否必须
说明
ChatGPT Plus / Pro
✅ 必须
Codex 集成在 ChatGPT 左侧栏。Plus $20/月够用,Pro $200/月配额更高、并发任务更多。做完整 App 推荐 Pro
一台 Mac
✅ 必须
iOS 真机调试只能在 macOS 上进行。推荐 M 系列芯片,至少 16GB 内存 + 50GB 空闲硬盘
Xcode 15 或更新
✅ 必须
App Store 免费下载,实际占用约 15–20 GB。第一次启动还要下载 iOS Simulator Runtime
Apple ID
✅ 必须
用于真机调试,免费版即可。注意 7 天有效期,需每周重新签名
Git + GitHub 账号
⭐ 强烈建议
Codex 可以直接推 PR 到你的仓库,比每次下载 zip 高效得多
Supabase(阿里云也可以) 账号
可选
需要云端数据存储、用户登录、多端同步时再注册。免费额度 500MB 数据库 + 1GB 存储
Apple Developer Program
可选
$99/年(国内 ¥688/年)。只有需要发 TestFlight 或上架 App Store 才买


二、最关键的一步:想清楚你要做什么

别一上来就让 Codex 写代码。先用一张纸或笔记工具回答这 5 个问题:

  1. 这个 App 是干什么的?用一句话讲清楚。比如:“每 45 分钟提醒我喝水,记录今天喝了几杯”
  2. 核心交互是什么?用户打开 App,3 秒内能完成的那件事
  3. 需要几个页面?初版控制在 3 个以内,首页 + 详情 + 设置,足够了
  4. 数据存在哪里?只存本地:UserDefaults(简单 KV)或 SwiftData(结构化数据)
                             需要多端同步:Supabase 或 CloudKit
  5. 需要哪些系统权限?联网、通知、相机等,提前列进 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 后,按以下步骤操作:

  1. 本地 git pull 拉取分支
  2. 双击 .xcodeproj 文件(不是 .xcworkspace,除非用了 CocoaPods)
  3. Xcode 顶部选择 Scheme 和模拟器(iPhone 15 Pro 是默认兼容选项)
  4. 按 ▶️ 按钮或 Cmd+R

常见报错及处理

第一次运行大概率有错误,这是正常的。以下是三类最常见的错误及处理方法:

错误类型
处理方法
Signing for "xxx" requires a development team
Xcode 左侧选项目 → Signing & Capabilities → Team 选择你的 Apple ID
Cannot find type 'XXX' in scope
文件没有被加入项目 Target。Cmd+点击文件名 → File Inspector → 勾选对应 Target
API deprecation 或编译错误
直接截图整段报错文本贴回 Codex

,说明”工程目标 iOS 16,请用现行 API 修复”

实操经验:大部分错误 2-3 轮与 Codex 来回反馈就能解决。白屏、卡顿、闪退同理,截图 + 复现步骤丢回去,比自己逐行 debug 快得多。

养成好习惯:每次本地能跑了立刻 git commit,一句话写明做了什么。这样后面 Codex 改坏了你能秒回滚。


六、逐步添加功能与数据库

App 在模拟器里跑通后,开始迭代功能。一次只加一个。

功能迭代节奏

好的迭代节奏是:

  • 「加个深色模式开关,存到 UserDefaults,启动时读取」
  • 「主页加一个进度环显示今日完成率,用 SwiftUI 原生 Gauge」
  • 「通知文案随机从 10 条预设中选一条」

每次让 Codex 以 PR 形式给出 diff,你 review 后再 Merge。

⚠️ 禁忌:不要同时修改 5 个东西。一旦出错,你根本不知道是哪一步改坏的。

接入 Supabase 数据库

当功能基本调试完毕,需要联网数据时,接入 Supabase。

Supabase 是一个开源 Firebase 替代品,提供 PostgreSQL 数据库、身份认证、实时订阅和对象存储。

接入步骤:

  1. 打开 supabase官网 注册
  2. 创建新项目,区域选择 Singapore(国内访问最快)
  3. 初始化完成后,点击顶部 Connect → 选择 MCP → 选择 Codex
  4. 复制生成的连接指令(包含 Project URL + anon key)
  5. 将这段指令贴给 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

  1. Xcode 左侧打开 Assets.xcassets → AppIcon
  2. 将 1024×1024 PNG 拖入 App Store iOS 1024pt 格子
  3. Xcode 14+ 支持 Single Size,一张图自动适配所有尺寸,无需切多分辨率

三个高频坑

  • ❌ PNG 带 alpha 通道 → App Store 审核会被拒绝。用 Squoosh 或 ImageOptim 去掉透明层
  • ❌ 图标自己画了圆角 → 系统会再加一层圆角,变成”圆角里的圆角”
  • ❌ 源图小于 1024×1024 → 打 Archive 包上传 TestFlight 时会直接失败

八、真机测试

模拟器收不到推送通知,用不了相机、陀螺仪、HealthKit,这些功能必须在真机上测试。

连接与配置

  1. 数据线(不是仅充电的线)将 iPhone 连接 Mac,手机上点击”信任此电脑”
  2. Xcode 顶部设备选择器切换到你的真机
  3. Xcode 左侧项目 → Signing & Capabilities → Team 选择你的 Apple ID
  4. 如没有账号:点 Add Account… → 登录 Apple ID → Team 下拉选择 Personal Team
  5. 保持 Automatically manage signing 勾选
  6. Bundle Identifier
     改为全球唯一的反域名格式,例如 com.yourname.yourappname
  7. 按 ▶️ 运行,首次约等待 2–5 分钟(编译 + 签名 + 安装)

处理”不受信任的开发者”提示

iPhone 上安装后如果打不开并提示”不受信任的开发者”:

设置 → 通用 → VPN 与设备管理 → 开发者 App → 信任你的 Apple ID

免费账号的限制

  • App 在真机上 7 天后失效,需重新 Build & Run 续签
  • 一个免费 Apple ID 最多同时安装 3 个自签 App

九、通过 TestFlight 分发给朋友测试

需要支付 $99/年(国内 ¥688/年)的 Apple Developer Program 费用。如果只是自用,上一步的真机调试就够了。

操作流程:

  1. 开通 Apple Developer Program,个人账号审核约 24–48 小时
  2. 登录 App Store Connect → My Apps → + 新建 App
  3. Xcode 顶部 device 选择 Any iOS Device (arm64)
  4. 菜单 Product → Archive(使用 Release 编译配置)
  5. Archive 完成后 Organizer 自动弹出 → Distribute App → App Store Connect → Upload
  6. 上传后等 5–15 分钟,App Store Connect 中构建版本即可见
  7. 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。

往期好文:

AI 吞噬了”知道”,”做到”成了新的护城河

当AI帮你写代码,谁来帮你把关安全?

AI Agent 协作的新基础设施:深度解析 A2A 协议