从 Healthory 到 Nature Aimanic:两款 iOS App 审核实战后,我总结了这份过审清单
从 Healthory 到 Nature Aimanic:两款 iOS App 审核实战后,我总结了这份过审清单
这不是一篇“如何讨好审核员”的文章。
更准确地说,它是两款独立开发 App 在提交、被指出问题、整改、重新提交之后,总结出的一个原则:审核不是猜谜。你要做的是让审核员在最短路径内看懂 App、跑通核心功能,并确认每一个付费、隐私和 Apple 服务使用都合规。
我开发的两款 App,方向差异很大:

- 体检档案管家:家庭体检档案与健康趋势管理,强调本地保存、长期数据和隐私优先;
https://apps.apple.com/cn/app/体检档案管家/id6808067824

- Nature Aimanic:自然观察与物种图鉴,涉及相机识别、订阅、WeatherKit、CloudKit 私有同步等能力。因为存在联网功能,暂时仅上架了海外平台。
https://apps.apple.com/app/nature-almanac-ai/id6796149184
一个偏健康数据,一个偏自然探索;但在 App Store 审核里,它们遇到的问题却高度相似:
审核员不是不了解你的产品,而是无法在有限时间里确认它是否完整、可用、透明且合规。
下面是我认为最值得复用的经验。
一、先接受一个事实:App Store 页面也是产品的一部分
很多独立开发者会把注意力都放在 App 内功能上:页面够不够漂亮、识别够不够准、订阅能不能购买。
但审核时,App Store Connect 中的这些内容同样是产品的一部分:
- App 描述
- 隐私政策
- 支持网址
- EULA / Terms of Use
- App Review Notes
- 测试账号或测试步骤
- 审核附件与录屏
- 订阅商品配置与价格
Healthory 和 Nature Aimanic 的经历让我意识到:
App 内做对了,不代表审核信息也做对了。
审核信息缺失,审核照样会停下来。
特别是自动续订订阅。即使 App 内有“Terms”和“Privacy”按钮,审核仍可能要求你在 App Store 产品页元数据中提供 Terms of Use。
如果使用 Apple 标准 EULA,可以在 App Description 中加入:
Terms of Use (EULA):
https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
如果使用自定义 EULA,则应在 App Store Connect 的 License Agreement 中配置。Apple 当前仍提供标准 EULA,也支持按地区配置自定义协议。
Apple App Information 文档
二、订阅审核最怕的不是贵,而是“前后不一致”
Nature Aimanic 曾遇到一个很典型的问题:
- Paywall 上显示一个月度价格;
- 苹果 Sandbox 购买弹窗显示另一个价格;
- 审核员直接要求确认到底是
$9.99/month还是$4.99/month。
这类问题的根源通常不是审核员挑剔,而是用户真正会被误导。
我的处理原则是:
- 不要在客户端硬编码订阅价格;
- Paywall 统一使用 StoreKit / RevenueCat 返回的本地化价格;
- 月度、年度、试用期、续费周期必须来自同一个商品源;
- App 内价格、App Store Connect 商品价格、系统购买弹窗必须一致;
- “Restore Purchases”“Terms”“Privacy”必须在付费墙上清晰可见。
比如 RevenueCat 的模板里:
{{ product.price_per_month }}
{{ product.price_per_period }}
{{ product.price_per_period_abbreviated }}
看起来只是文案变量,但它决定了审核员和用户是否看到正确价格。
一个很实用的提醒:
不要只看自己的开发环境。
一定要在 iOS Sandbox 真机弹窗中确认最终价格。
因为审核员看到的,就是系统弹窗中的价格,而不是你设计稿上的价格。
三、使用 WeatherKit,归属标识不是“放一段文字”就够了
Nature Aimanic 使用了 WeatherKit。审核要求非常明确:
- 显示 Apple Weather 商标;
- 提供天气数据来源的法律链接;
- 审核员能在 App 中清楚找到它。
一开始,很多开发者都会写一个普通的:
Weather data sources
或者:
Apple Weather
但更稳妥的做法是使用 WeatherKit 提供的官方组合标识,并让它可以跳转到法律归属页。
WeatherKit 的 WeatherAttribution 提供了:
- 深色 / 浅色 Apple Weather 组合标识;
- 法律归属链接;
- 相关归属文本。
Apple 明确要求:只要展示 Apple Weather 数据,就需要展示 Apple Weather 商标以及法律归属链接。
WeatherKit Attribution 文档
WeatherKit 官方说明
这里还有一个容易误解的现象:
https://weatherkit.apple.com/legal-attribution.html
跳转到 Apple Developer 的 WeatherKit Data Sources 页面是正常的。它本来就是数据来源归属页,不是链接失效。
对于审核来说,最好的路径是:
天气信息卡片
→ Apple Weather 官方组合标识
→ 点击后打开法律归属页
而不是把标识藏在设置页、关于页面或不容易触达的角落。
四、App Review Notes 不要写“介绍”,要写“测试剧本”
这是最有价值的一条。
很多人会在备注里写:
This app helps users manage health data.
这几乎没有帮助。
审核备注的真正用途是:
告诉审核员从哪里进入、点什么、需要允许什么权限、应该看到什么结果。
好的备注像一个 60 秒测试剧本。
例如,Nature Aimanic 的审核备注可以写成:
No account registration is required to use the main features.
Test steps:
1. Launch the app and allow Camera access when prompted.
2. Tap the camera/recognition button.
3. Capture a photo of a natural subject and confirm the recognition result.
4. Open the species detail page to review Science, Identifying Features,
Interesting Facts, and English learning content.
5. Open the weather section from a discovery detail page.
The Apple Weather attribution mark is displayed there and can be tapped
to open the legal attribution page.
6. To test subscriptions, open the Premium/Upgrade entry.
Monthly and annual products use localized App Store prices.
Restore Purchases, Terms of Use, and Privacy Policy are available
from the subscription screen.
7. iCloud synchronization is optional and requires an iCloud-signed-in device.
No separate backend account is required.
Healthory 这类健康数据 App,则更应该强调:
- 无需注册账户;
- 数据默认本地保存;
- 不提供诊断或医疗建议;
- 如何创建家庭成员;
- 如何添加检查项目;
- 如何查看趋势;
- 是否需要 HealthKit、照片或通知权限。
Apple 官方也明确建议:Notes 要说明 App 概念、商业模式、功能入口、账号流程和重大更新的位置;如果 App 需要特定硬件或特殊操作,附件视频也能减少审核延迟。
Apple App Review Tips
五、录屏附件的作用,是替审核员节省时间
以前我会觉得“审核员自己点一下就行”。
后来发现不是这样。
对于涉及以下能力的 App,我现在会主动上传实体设备录屏:
- 订阅购买流程;
- Restore Purchases;
- WeatherKit 标识与跳转;
- 相机识别;
- CloudKit 私有同步;
- 特殊权限;
- 硬件连接;
- 隐藏较深但重要的核心功能。
一段 45~90 秒的录屏就够了。重点不是剪得多炫,而是让审核员看到:
打开 App
→ 进入核心功能
→ 完成关键操作
→ 得到预期结果
→ 展示合规信息
对于 Nature Aimanic,我会优先录两段:
-
Paywall 视频
进入会员页 → 看到月度/年度价格 → Terms / Privacy → Restore Purchases → Sandbox 购买弹窗。 -
WeatherKit 视频
打开带天气信息的观察记录 → 展示 Apple Weather 官方标识 → 点击进入数据来源归属页。
对于 Healthory,则可以录:
创建家庭成员
→ 添加一条体检数据
→ 查看多年趋势
→ 展示本地保存 / iCloud 私有同步入口
App Store Connect 支持为审核提交上传文档、演示视频等附件,目的正是帮助审核理解 App,减少延迟。
Apple App Review Attachments 文档
六、不要让审核依赖“理想环境”
很多 App 在开发者自己的设备上很顺畅,但审核环境不一定具备:
- 没有你的测试数据;
- 没有登录 iCloud;
- 没有订阅状态;
- 没有相册权限;
- 没有网络;
- 没有某个地区的位置权限;
- 没有你认为“默认存在”的内容。
所以要问自己:
如果审核员第一次安装 App,30 秒内能否理解它、进入核心体验、确认其价值?
Healthory 的策略是让用户无需注册即可体验本地档案与趋势能力。
Nature Aimanic 的策略是:
- 识别入口明确;
- 首屏有可理解的内容;
- 订阅入口不阻挡基础体验;
- iCloud 同步是增强能力,而不是 App 启动前提;
- WeatherKit 无法使用时,不阻塞观察记录保存。
这里的关键不是讨好审核,而是产品本身更可靠。
七、被拒绝并不等于产品失败,先把它翻译成可执行任务
审核反馈往往写得很短,但每一条都应该被翻译成具体动作。
例如:
| 审核反馈 | 不要理解成 | 应该转化为 |
|---|---|---|
| 缺少 Terms of Use | “苹果很麻烦” | 补 App 描述 EULA 链接或配置自定义 EULA |
| 订阅价格不一致 | “Sandbox 有问题” | 排查 App Store 商品、RevenueCat Package 和 Paywall 变量 |
| WeatherKit Attribution | “放一个 Apple Weather 文本” | 官方标识 + 可点击法律链接 + 录屏 |
| Need more information | “再解释一下产品” | 写完整测试路径、权限说明、账号/同步前提 |
| App Completeness | “功能大概能用” | 审核首次安装时是否能稳定走通关键路径 |
我现在更愿意把审核当作一次高质量的产品 QA。
它逼着你回答一个问题:
一个完全不了解你产品的人,能不能在短时间内确认它真的可用?
八、我的提交前清单
每次提交前,我会逐项检查:
结语:让审核员轻松,也是在让用户轻松
Healthory 和 Nature Aimanic 还在持续迭代,但这两次审核过程让我越来越确定:
过审不是靠运气,也不是靠写一段漂亮的申诉。
真正有效的是:
- 产品有清晰边界;
- 价格和权益透明;
- 隐私说明可信;
- Apple 服务使用合规;
- 审核员能快速跑通关键路径;
- 你提前提供他需要的一切信息。
如果你的 App 让审核员需要猜、需要找、需要等、需要反复点,审核就会慢下来。
反过来,如果你把审核流程当成“第一次用户体验”认真设计,过审往往只是副产品。
Healthory
家庭体检档案与健康趋势管理,帮助家庭把多年检查数据保存在自己手里。
Nature Aimanic
自然观察、物种图鉴与英语学习工具,把每一次真实世界的发现沉淀为自己的自然记录。
如果你也在做独立 App,欢迎关注。后续我会继续分享 Flutter、iOS、App Store 审核、订阅、隐私和 Local-first 产品开发中的真实踩坑与解决过程。
注:本文为独立开发实践经验分享,不构成法律、医疗或平台合规意见;提交前请以 Apple 最新官方文档与具体审核反馈为准。
原文地址: https://www.cveoy.top/t/topic/qHz8 著作权归作者所有。请勿转载和采集!