别把假数据塞进正式包:用 AI + Development Assets 管好 iOS 预览素材
June 29, 2026 · 8:13 AM

别把假数据塞进正式包:用 AI + Development Assets 管好 iOS 预览素材

今天这一技教你先让 AI 生成预览用假数据和占位素材,再放进 Xcode 的 Preview Content / Development Assets。PM 不用等后端或设计,也能验收接近真实数据的 iOS 界面,同时避免把测试素材带进正式包。

这个技巧适合一个很具体的尴尬场景:你让 AI 把页面写出来了,但页面里还没有真实数据、真实头像、真实商品图。最偷懒的做法,是把一堆假图、假 JSON、假用户名字直接塞进 App 资源里。短期能预览,长期会留下两个坑:正式包变大,假数据还可能被误用到真页面。
更稳的做法是:把这些素材放进 Xcode 的 Development Assets,也就是只服务开发和预览的素材区。Apple 在 Xcode Previews 相关说明里把 previews 定位为快速迭代界面的方式,Xcode 可以在 canvas 里显示界面变化;WWDC23 也提到,previews 可以用 #Preview 宏配置 UI,并把 sample data 和 assets 传进预览场景。1
今天这一技不是让你多写代码,而是让 AI 帮你准备一套「只在开发时出现」的样本素材。你用它验收页面状态,正式上架时不把这些临时东西带走。

这招解决什么问题

PM 独立做 iOS 前端时,最容易卡在「没有真实素材,所以页面看不出来」:
  • 首页列表没有真实条目,只能看一行占位。
  • 头像、封面、空状态图还没定,页面显得很空。
  • 后端接口没好,加载失败、空列表、超长标题都没法验。
  • AI 编码工具写出来的 Preview 只能显示默认状态,看不出边界问题。
Xcode Previews 本来就适合这类场景。Apple 在 WWDC20 里演示过把 sample data 放进 preview content,并说明 Development Assets 可以放图片、资源和只用于开发调试测试的代码,Xcode 只会在开发版本里包含这些路径。2
对 PM 来说,这句话可以翻译成一句操作原则:假素材可以用,但要有边界。 它们只用来验收 UI,不该混进正式用户会下载的资源里。

原理:把「验收用样本」和「正式 App 资源」分开

你可以把 Development Assets 理解成一个开发抽屉:里面可以放测试图片、测试 JSON、预览专用颜色、样本数据库,甚至一些 mock 数据文件。Xcode 里新建 SwiftUI 项目时常见的 Preview Content 文件夹,就是为了给预览素材留位置。可信开发者 Antoine van der Lee 也解释过,Development Assets 可用于 SwiftUI previews 和开发期测试数据;这些被标记为开发用途的资源会在归档 App 时移除。3
这对一个人做产品很有用。你不需要等设计师给全套图,也不需要等后端准备完整接口。你先让 AI 生成一组足够真实的样本,放进开发抽屉,再让 SwiftUI Preview 调用这组样本看界面。
这里的重点不是「样本越多越好」。重点是覆盖会影响产品体验的状态:空、少量、满屏、超长、失败、权限不足。

怎么用:给 AI 一份样本素材任务单

先选一个页面,不要全 App 一起做。比如你今天只验收「任务列表页」。然后把下面这段话交给 AI 编码工具或通用 AI,让它生成样本清单和接入建议:
我在做一个 iOS SwiftUI 任务列表页。请帮我准备只用于 Xcode Preview 的样本数据,不要用于正式 App。请覆盖 6 种状态:空列表、1 条任务、10 条任务、超长标题、加载失败、权限未开启。每条任务包含标题、截止时间、优先级、是否完成。请告诉我哪些内容适合放进 Preview Content / Development Assets,哪些应该写成预览用 mock 数据。不要生成正式业务逻辑。
拿到 AI 输出后,你按这 4 步处理:
  1. 建一个样本区:在 Xcode 项目里找到或新建 Preview Content。如果项目设置里还没有配置,在 target 的 Build Settings 里搜索 Development Assets,把这一路径加进去。Apple 在 WWDC23 的演示中也提到,可以把 preview 用图片放进 Preview Contents,并在 Build Settings 里配置 development asset path。1
  2. 只放验收素材:占位头像、示例封面、JSON 样本、预览专用图标可以放进去。正式 App 要展示的默认图、品牌图标、上架后还要用的空状态图,不要放这里。
  3. 让 AI 接入 Preview:给 AI 编码工具一句很窄的指令:请只修改 #Preview 相关代码,让预览读取 Preview Content 里的样本,不要改正式页面的数据来源。 WWDC23 说明 #Preview 可以返回并配置一个 view,也可以把 sample data 和环境值传入预览场景。1
  4. 在 canvas 里验收状态:每种状态都单独命名,例如「空列表」「10 条任务」「超长标题」。Xcode Previews 支持在 canvas 里查看多个变化状态,也支持切换深色模式、动态字号等设备设置。1
如果你还不熟 Xcode 设置,先别碰复杂数据。只放 2 张占位图和 1 个 JSON 文件就够了。这个技巧的价值在于建立边界,不在于一次性搭出完整假后端。

PM 要盯住的 5 个验收点

验收点你要看什么出问题时给 AI 的指令
空状态没有数据时是否有解释和下一步按钮「请补一个空状态文案和主按钮,不要改变正式数据结构」
少量数据1 条内容时页面是否显得孤零零「请调整单条内容的上下间距,让页面不显空」
满屏数据10 条以上是否还能快速扫读「请压缩列表行信息,只保留标题、状态和截止时间」
极端文案超长标题、长用户名会不会挤坏布局「请让标题最多显示两行,溢出时保留主要信息」
错误状态加载失败或权限未开时有没有可执行动作「请把错误状态改成可重试或可去设置开启权限的提示」
这张表可以直接贴给 AI 编码工具。注意,不要让它「顺便优化整个页面」。每次只改一个预览状态对应的问题,改完回到 canvas 复验。

今天就做一个最小版本

选你现在最担心的一个页面,做一个很小的 Development Assets 包:
  1. 让 AI 列出这个页面最该验的 4 个状态。
  2. 放入 2 张占位图和 1 份样本 JSON,统一放在 Preview Content
  3. 让 AI 只改 #Preview,把这 4 个状态展示出来。
  4. 在 Xcode canvas 里逐个看一遍,把问题写成短缺陷单。
这件事做完后,你会得到一个更接近真实使用的页面预览,而且不用把假素材混进正式 App。等后端和真实素材到位,再把预览样本换成更贴近业务的数据;开发抽屉还留在那里,下次验收新页面继续用。

Related content

Add more perspectives or context around this Post.

  • Sign in to comment.