# Apple 审核被拒原因：我的 5 个真实案例

> 我的 App 被 Apple 以 2.1、5.6.3、5.1.1、2.3.2 拒绝：真实原因、如何回复、提交前检查清单。

原始页面：[Apple 审核被拒原因：我的 5 个真实案例](https://devoria.fr/zh-hans/blog/apple-app-rejection-reasons-real-cases)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-08-27
内容最后修订：2026-10-09


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 的建议在它的[隐私设计规范](https://developer.apple.com/design/human-interface-guidelines/privacy)里。

### Nolera 的 2.3.2 被拒：把图标当成推广图片

订阅可以在 App Store Connect 里设置一张推广图片。Nolera 有两个订阅用的就是 App 图标。Apple 认为这不合规。

**修复方法**：删掉了这两个订阅的图片，并重新创建了提交。

**教训**：你产品页上的每个元素都会被审查，包括那些你随手填的，比如年龄分级。

## 最常踩坑的是哪些 guideline？

所有规则都在 [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) 里。第一个 App 最容易栽的是这些：

**2.1：App Completeness。** App 崩溃、某个按钮点了没反应、某个必经页面在某种尺寸上过不去。如果你的 App 需要登录，就在审核备注里提供一个演示账号，否则审核员会卡在登录页面。关于这一条的一切，都在我的 [guideline 2.1 指南](https://devoria.fr/zh-hans/blog/app-store-guideline-2-1-rejection-fix)里。

**2.3：Metadata。** [截图展示的不是真实的 App](https://devoria.fr/zh-hans/blog/app-store-screenshot-sizes-2026)、描述承诺了不存在的功能、推广图片不合规。

**[3.1.1：In-App Purchase](https://devoria.fr/zh-hans/blog/guideline-3-1-1-in-app-purchase-required)。** 要在 App 里解锁数字内容或功能，一般规则是使用 Apple 的 App 内购买。例外情况因国家而异，而且一直在变：打算用别的支付方式之前，先读最新版的 guidelines。完整内容在 [iOS App 内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)页面。

**[3.1.2：Subscriptions](https://devoria.fr/zh-hans/blog/guideline-3-1-2-subscription-rejection-paywall)。** 订阅制 App 必须清楚展示用户能得到什么、价格多少。付费页的典型错误在 [iOS paywall：新手常犯的 7 个错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)里。

**4.3：Spam。** App 和成千上万个别的 App 长得一样，或者[本身提供的价值不够](https://devoria.fr/zh-hans/blog/guideline-4-2-minimum-functionality-rejection)。这是最难修的被拒：从选点子开始就要预防。我在 [guideline 4.3 指南](https://devoria.fr/zh-hans/blog/guideline-4-3-design-spam-app-rejected)里详细讲了。

**5.1.1：Privacy。** 数据收集声明和 App 的实际行为不符、隐私政策不完整、请求权限时没有清楚说明。

## 被 Apple 拒绝后，怎么回复才不浪费时间？

被拒不是判决，只是一个来回。行之有效的步骤：

1. **把拒绝理由读两遍。** 消息会引用 guideline，通常还附一张截图。很多开发者答非所问，就是因为读得太快。
2. **找到真正的原因。** 不管是 Clic 还是 Nolera，真实原因都不是消息字面上第一眼看起来的那个。在审核员的条件下复现问题：同类设备、全新账号、首次启动。
3. **只修拒绝理由，别动别的。** 现在不是加三个新功能的时候：每一处改动都会扩大审核面。
4. **在 App Store Connect 里回复。** 用两句客观的话说明你修了什么，方式是[回复 App Review 的消息](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/)。
5. **只有确定时才申诉。** 如果你认为 App 被误解了，Apple 允许你[向 App Review Board 申诉](https://developer.apple.com/distribute/app-review/)，每个被拒的提交只能申诉一次。对理所应当的被拒提出异议，只是白白浪费时间。

时间方面，Apple 表示至少 50% 的提交在 24 小时内审完，90% 在 48 小时内审完。拉长时间表的是被拒，而不是[排队](https://devoria.fr/zh-hans/blog/app-store-connect-waiting-for-review-statuses)：详情见 [App Store 审核时间](https://devoria.fr/zh-hans/blog/app-store-review-time-how-long)。被拒后的完整处理流程在 [App 被 Apple 拒绝](https://devoria.fr/zh-hans/expertise/app-rejected-by-apple)页面。

> 一次本可避免的被拒，要花掉一整个审核周期。给 Apple 最好的回答，是一份让它挑不出毛病的提交。

## 我每次提交前都会过的检查清单

在我的 App 上，一次次被拒之后总结出来的：

- 每个必经页面都在最小的 iPhone、最大的 iPhone，以及兼容模式下的 iPad 上测试过，参照 guideline 4.0 设计的对照表
- 引导流程的每一步都有出口，失败时也一样
- 如果 App 需要登录，在审核备注里提供演示账号
- 购买在 sandbox 中测试过，包括恢复购买
- 价格、时长以及条款和隐私政策的链接，在 Apple 要求的位置都有，每种语言都有
- 提交当天重新读过线上隐私政策
- [隐私声明](https://devoria.fr/zh-hans/blog/guideline-5-1-2-third-party-ai-att-data-sharing)与 App 实际收集的数据一致，包括 [privacy manifest](https://devoria.fr/zh-hans/blog/itms-91053-missing-api-declaration-expo)
- 权限请求前的页面没有“允许”按钮
- 评分和通知请求放在证明价值之后，不以评分换取任何解锁（guideline 3.2.2）
- 推广图片和[截图展示的是真实的 App](https://devoria.fr/zh-hans/kits/captures-app-store)，包括你的自定义产品页

如果这是你第一次发布，[在 App Store 上发布 App](https://devoria.fr/zh-hans/expertise/publish-an-app-on-the-app-store) 页面会带你走完提交前的所有步骤。

## 向 App Review 说明使用流程的模板

[下载 App Review 备注模板](https://devoria.fr/ressources/notes-app-review.md)：法语说明、待填写的英文备注，以及回复被拒的框架。它会让你写清版本、页面路径和预期结果。只保留你的 build 里真实存在的内容。

把“App 能正常保存”换成一个可复现的场景：起始页面、操作、关闭并重新打开、找回的结果。被拒之后，写明修复后的行为以及你在哪台设备上验证过。如果你没能复现问题，就说明复现还缺什么。

演示账号的登录信息填在 App Store Connect 的专用字段里，绝不要放在公开文件中。你可以用 [TestFlight 测试清单](https://devoria.fr/zh-hans/blog/testflight-guide-test-iphone-app)准备证据，还可以看看[五个免费模板](https://devoria.fr/zh-hans/resources)。

## 提交前避开这些被拒

[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple) 包含我的提交前检查清单、我修复过的 Apple 被拒案例，以及在提交前审查你的项目、paywall 和产品页的 Claude Code skills。

你的 App 已经被拒了？这个套件能帮你找到被引用的规则、它的要求，以及修复和回复的示例。如果你想现在就和我一起看看你的情况，[预约我一小时](https://devoria.fr/zh-hans/coaching)，视频进行。

没有人能保证 Apple 会通过你的 App。从已经经历过的被拒出发，只是降低你踩同样坑的几率。

你还没提交 App？[免费诊断](https://devoria.fr/zh-hans/diagnostic)会把我的防被拒检查清单发给你，并告诉你还剩哪些事要做。如果你还在开发阶段，首页会介绍如何在牢记这些被拒的前提下[开发一个移动 App](https://devoria.fr/zh-hans)。

## 常见问题

### 我的 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 审核时间](https://devoria.fr/zh-hans/blog/app-store-review-time-how-long)。

### 把 App 提交给 Apple 之前要检查什么？

在最小的 iPhone、最大的 iPhone 和兼容模式下的 iPad 上测试每个必经页面，然后在 sandbox 中测试购买，包括恢复购买。提交当天重读线上隐私政策；如果 App 需要登录，在审核备注里提供演示账号。这份清单是在我的 App 上一次次被拒之后总结出来的。


## 你的项目

[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple)：我在用的 App Store 审核检查清单、我被 Apple 拒绝后的修改、给审核员的备注，以及两个审查你 App 的 Claude Code skills。29 €。

[iOS Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 做你的 iPhone App：我自己 App 的起步代码、检查其工作的 skills，以及 Apple Review Kit、App Store Screenshots Kit 和 ASO Kit。129,99 €。
