Apple 审核被拒原因:我的 5 个真实案例
作者:Mehdi Azizi
更新于 ,8分钟
我的 App 被 Apple 以 2.1、5.6.3、5.1.1、2.3.2 拒绝:真实原因、如何回复、提交前检查清单。
Apple 拒绝一个 App,几乎总有一个明确的原因,写在审核消息里:一条带编号的 guideline,通常还附一张截图。第一个 App 最常见的被拒理由有:App 没做完(2.1)、隐私声明不对(5.1.1)、元数据有误导性(2.3.2)、付费绕过了 App 内购买(3.1.1),或者评分请求放错了位置(5.6.3)。绝大多数情况下,审核员完全看懂了你的 App:真正有漏洞的是你的提交。
我知道这些,是因为这些拒绝我自己都吃过。我发布自己的 iOS App:Solys(一个带小游戏的闹钟)和 TradaZen(一个交易模拟器)都已上架 App Store。Solys 被拒过两次,一次在上线前,一次在更新时;另外两个 App,Clic 和 Nolera,也被拒过,修改后重新提交给了 Apple。下面是这五次被拒和它们的真实原因,然后是回复的方法,以及我每次提交前都会过一遍的检查清单。
Apple 为什么拒绝 App:我遇到的 5 次被拒
Solys 的 2.1 被拒:演示根本赢不了
Solys 的引导流程里有一个可玩的演示:要赢下一局小游戏,就像闹钟响时一样。在我的手机上一切正常。但审核员是在 iPad 上测试的,iPhone App 在 iPad 上以兼容模式运行,窗口更小。在这个尺寸下,小游戏里留给小鸟通过的缝隙比小鸟本身还窄,而“继续”按钮只有赢了才会亮起。Apple 要求提供一种跳过游戏任务的方式。
修复方法:演示的几何尺寸根据屏幕的实际大小来计算,并在失败时提供一个跳过演示的链接。
教训:每个必经步骤都要有出口,每次提交前,每个必经页面都要在最小的尺寸上测试。
Solys 的 5.6.3 被拒:在引导流程中请求评分
第二次被拒发生在下一次更新。Apple 说这个 App 在首次启动或引导流程中请求评分。评分页面紧跟在演示后面出现,用户在 App 里还什么都没体验到。
修复方法:把请求移到流程的最后,并且只在用户刚赢下演示时才显示。
教训:每一个敏感请求(评分、通知、订阅、跟踪)都要在证明价值之后出现,绝不能在之前。
Clic 的 5.1.1 被拒:线上隐私政策没有更新
Clic 用 AI 生成内容,App 里也确实有同意页面。问题出在别处:网站上发布的隐私政策还是旧版本,没有描述 App 收集的全部内容。
修复方法:发布完整的隐私政策,加上英文摘要,更新审核备注。
教训:Apple 看的是你线上的政策,而不是躺在你代码仓库里的那份。每次提交前,打开你填写的 URL,确认它写的就是你 App 做的事。
Nolera 的 5.1.1 被拒:系统请求之前出现“允许”按钮
在 iOS 真正请求相机权限之前,Nolera 会显示一个说明页面,上面有一个“允许”按钮。在 Apple 看来,这个文案会诱导用户在系统正式请求之前就接受。
修复方法:按钮现在叫“继续”,App 的 8 种语言都改了。
教训:为权限做铺垫的页面只负责解释,不能替用户做决定。Apple 的建议在它的隐私设计规范里。
Nolera 的 2.3.2 被拒:把图标当成推广图片
订阅可以在 App Store Connect 里设置一张推广图片。Nolera 有两个订阅用的就是 App 图标。Apple 认为这不合规。
修复方法:删掉了这两个订阅的图片,并重新创建了提交。
教训:你产品页上的每个元素都会被审查,包括那些你随手填的,比如年龄分级。
最常踩坑的是哪些 guideline?
所有规则都在 App Review Guidelines 里。第一个 App 最容易栽的是这些:
2.1:App Completeness。 App 崩溃、某个按钮点了没反应、某个必经页面在某种尺寸上过不去。如果你的 App 需要登录,就在审核备注里提供一个演示账号,否则审核员会卡在登录页面。关于这一条的一切,都在我的 guideline 2.1 指南里。
2.3:Metadata。 截图展示的不是真实的 App、描述承诺了不存在的功能、推广图片不合规。
3.1.1:In-App Purchase。 要在 App 里解锁数字内容或功能,一般规则是使用 Apple 的 App 内购买。例外情况因国家而异,而且一直在变:打算用别的支付方式之前,先读最新版的 guidelines。完整内容在 iOS App 内订阅页面。
3.1.2:Subscriptions。 订阅制 App 必须清楚展示用户能得到什么、价格多少。付费页的典型错误在 iOS paywall:新手常犯的 7 个错误里。
4.3:Spam。 App 和成千上万个别的 App 长得一样,或者本身提供的价值不够。这是最难修的被拒:从选点子开始就要预防。我在 guideline 4.3 指南里详细讲了。
5.1.1:Privacy。 数据收集声明和 App 的实际行为不符、隐私政策不完整、请求权限时没有清楚说明。
被 Apple 拒绝后,怎么回复才不浪费时间?
被拒不是判决,只是一个来回。行之有效的步骤:
- 把拒绝理由读两遍。 消息会引用 guideline,通常还附一张截图。很多开发者答非所问,就是因为读得太快。
- 找到真正的原因。 不管是 Clic 还是 Nolera,真实原因都不是消息字面上第一眼看起来的那个。在审核员的条件下复现问题:同类设备、全新账号、首次启动。
- 只修拒绝理由,别动别的。 现在不是加三个新功能的时候:每一处改动都会扩大审核面。
- 在 App Store Connect 里回复。 用两句客观的话说明你修了什么,方式是回复 App Review 的消息。
- 只有确定时才申诉。 如果你认为 App 被误解了,Apple 允许你向 App Review Board 申诉,每个被拒的提交只能申诉一次。对理所应当的被拒提出异议,只是白白浪费时间。
时间方面,Apple 表示至少 50% 的提交在 24 小时内审完,90% 在 48 小时内审完。拉长时间表的是被拒,而不是排队:详情见 App Store 审核时间。被拒后的完整处理流程在 App 被 Apple 拒绝页面。
一次本可避免的被拒,要花掉一整个审核周期。给 Apple 最好的回答,是一份让它挑不出毛病的提交。
我每次提交前都会过的检查清单
在我的 App 上,一次次被拒之后总结出来的:
- 每个必经页面都在最小的 iPhone、最大的 iPhone,以及兼容模式下的 iPad 上测试过,参照 guideline 4.0 设计的对照表
- 引导流程的每一步都有出口,失败时也一样
- 如果 App 需要登录,在审核备注里提供演示账号
- 购买在 sandbox 中测试过,包括恢复购买
- 价格、时长以及条款和隐私政策的链接,在 Apple 要求的位置都有,每种语言都有
- 提交当天重新读过线上隐私政策
- 隐私声明与 App 实际收集的数据一致,包括 privacy manifest
- 权限请求前的页面没有“允许”按钮
- 评分和通知请求放在证明价值之后,不以评分换取任何解锁(guideline 3.2.2)
- 推广图片和截图展示的是真实的 App,包括你的自定义产品页
如果这是你第一次发布,在 App Store 上发布 App 页面会带你走完提交前的所有步骤。
向 App Review 说明使用流程的模板
下载 App Review 备注模板:法语说明、待填写的英文备注,以及回复被拒的框架。它会让你写清版本、页面路径和预期结果。只保留你的 build 里真实存在的内容。
把“App 能正常保存”换成一个可复现的场景:起始页面、操作、关闭并重新打开、找回的结果。被拒之后,写明修复后的行为以及你在哪台设备上验证过。如果你没能复现问题,就说明复现还缺什么。
演示账号的登录信息填在 App Store Connect 的专用字段里,绝不要放在公开文件中。你可以用 TestFlight 测试清单准备证据,还可以看看五个免费模板。
提交前避开这些被拒
Apple Review Kit 包含我的提交前检查清单、我修复过的 Apple 被拒案例,以及在提交前审查你的项目、paywall 和产品页的 Claude Code skills。
你的 App 已经被拒了?这个套件能帮你找到被引用的规则、它的要求,以及修复和回复的示例。如果你想现在就和我一起看看你的情况,预约我一小时,视频进行。
没有人能保证 Apple 会通过你的 App。从已经经历过的被拒出发,只是降低你踩同样坑的几率。
你还没提交 App?免费诊断会把我的防被拒检查清单发给你,并告诉你还剩哪些事要做。如果你还在开发阶段,首页会介绍如何在牢记这些被拒的前提下开发一个移动 App。
常见问题
我的 App 为什么被 Apple 拒绝?
几乎总有一个明确的原因,写在审核消息里:一条带编号的 guideline,通常还附一张截图。对第一个 App 来说,最常见的理由是 App 没做完(2.1)、隐私声明不对(5.1.1)和元数据有误导性(2.3.2)。另外还有付费绕过 App 内购买(3.1.1)和评分请求放错位置(5.6.3)。
我的 App 在我的 iPhone 上运行正常,为什么还被拒?
因为审核员可能在和你不同的条件下测试。在我的小游戏闹钟 Solys 上,审核员用的是 iPad,iPhone App 在上面以兼容模式运行,窗口更小。演示在那里根本赢不了。修复方法:根据屏幕实际尺寸计算演示,并在失败时提供一个跳过的链接。
Apple 拒绝了我的 App,该怎么办?
把拒绝理由读两遍,然后在审核员的条件下复现问题,找到真正原因:同类设备、全新账号、首次启动。只修拒绝理由,别的都不动,因为每一处改动都会扩大审核面。然后在 App Store Connect 里,用两句客观的话说明你修了什么。
可以对 Apple 的拒绝提出申诉吗?
可以,但只有在你确定自己有理时才这么做。如果你认为 App 被误解了,Apple 允许你向 App Review Board 申诉,每个被拒的提交只能申诉一次。对理所应当的被拒提出异议,只是白白浪费时间。否则就修好问题,在 App Store Connect 里回复。
被拒会拉长发布时间吗?
会。Apple 表示至少 50% 的提交在 24 小时内审完,90% 在 48 小时内审完:所以拉长时间表的是被拒,而不是排队。一次本可避免的被拒,要花掉一整个审核周期。审核时间的详情见 App Store 审核时间。
把 App 提交给 Apple 之前要检查什么?
在最小的 iPhone、最大的 iPhone 和兼容模式下的 iPad 上测试每个必经页面,然后在 sandbox 中测试购买,包括恢复购买。提交当天重读线上隐私政策;如果 App 需要登录,在审核备注里提供演示账号。这份清单是在我的 App 上一次次被拒之后总结出来的。