# Guideline 5.6 付费墙被拒：原因与修改方法

> Guideline 5.6 会拒绝设陷阱的付费墙，比如点叉号却弹出优惠、强制推送促销。本文讲规则内容和我修改 TradaZen 被拒的过程。

原始页面：[Guideline 5.6 付费墙被拒：原因与修改方法](https://devoria.fr/zh-hans/blog/guideline-5-6-paywall-app-store-rejection)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-11-04
内容最后修订：2026-11-04


Guideline 5.6 是开发者行为准则。针对付费墙，Apple 会引用一句固定的话：应用“attempts to manipulate customers into making unwanted In-App Purchases”。说白了，**你的购买流程里有某个按钮做的事和它显示的不一样，或者某个优惠在用户没要求的情况下又冒了出来。** 修改只需要一条原则：每个按钮都做它说的事，什么时候再看到优惠，由用户自己决定。

我在 TradaZen 上吃过这个拒审。TradaZen 是我做的交易练习应用，上线过程写在[这篇案例分析](https://devoria.fr/zh-hans/blog/tradazen-case-study-launch-iphone-app)里。下面讲规则本身、我在自己付费墙里找到的问题、要避开的套路，以及我给 Apple 的回复。如果你关心的是请求评分的相邻规则，请看 [guideline 5.6.3](https://devoria.fr/zh-hans/blog/guideline-5-6-3-app-review-request-rejected) 的指南。

## Guideline 5.6 讲了什么？

5.6“Developer Code of Conduct”位于 [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#5.6) 第 5 部分“Legal”。第一段讲尊重：对客户、对评论的回复、和 Apple 的沟通。第二段直接针对购买。

现行条文先立原则：“Customer trust is a cornerstone of the App ecosystem.” 然后列出应用绝不能做的事：占用户便宜、欺诈用户、“trick them into making unwanted purchases”、强迫用户分享不必要的数据、“raise prices in a tricky manner”、对没交付的东西收费，以及应用内外的任何其他操纵行为。

翻成大白话：**不能靠耍花招换来购买。** 条文没有列出禁止的按钮清单，它看的是效果：用户付钱是因为他想买，还是因为界面给他下了套？

5.6 下面还有四条子规则：

| 子规则                   | 针对的内容     |
| ------------------------ | -------------- |
| 5.6.1 App Store Reviews  | 评论与评分请求 |
| 5.6.2 Developer Identity | 你的信息要准确 |
| 5.6.3 Discovery Fraud    | 曝光作弊       |
| 5.6.4 App Quality        | 投诉、退款     |

处罚写在规则里：“Repeated manipulative or misleading behavior or other fraudulent conduct will lead to your removal from the Apple Developer Program.” 也就是说，反复的操纵行为会让你被踢出开发者计划。这是一条通用规则，也是第一次被拒就把整个购买流程改干净的好理由。

## 付费墙的 5.6 拒审信息

拒审信息通常是同一句话：“The app attempts to manipulate customers into making unwanted In-App Purchases.” Apple 不一定会说明针对的是哪个元素。我收到的拒审就只有这一句。

其他开发者描述过出问题的界面。2024 年 11 月 [Apple 论坛的一个帖子](https://developer.apple.com/forums/thread/768912)里，一位开发者把他的 5.6 拒审归因于一个一次性优惠：用户关闭第一个订阅界面时就会弹出来。

5.6 不只针对付费墙。还有开发者因为某些功能看起来[在审核期间被隐藏](https://developer.apple.com/forums/thread/845045)而被拒。如果你的 5.6 拒审跟购买无关，先找找审核员有什么没看到。

## 我在 TradaZen 上的 5.6 拒审

2026 年 10 月 12 日，Apple 拒绝了 TradaZen 1.5.1 版本，测试设备是 iPad Air。理由：guideline 5.6，附上那句关于非自愿购买的固定说法。没有点名任何界面。

于是我把整个购买流程重新走了一遍，把自己当成一个只想拒绝的人。新手引导结束时的付费墙没有关闭选项：应用要求开始试用或订阅才能继续。它周围有三个机制可能被看成操纵：

- **假叉号。** 界面顶部有个叉号形状的按钮，VoiceOver 读出来是“关闭”，点了却打开一个折扣优惠，而不是关闭。
- **自己回来的优惠。** 只要优惠还在有效期内，用户每次回到应用它都会重新弹出。
- **促销推送。** 从付费墙退出应用，会预约一条宣传独家折扣的通知。

有个细节很关键：这些机制在上一个版本就已经存在，而那个版本三天前刚通过审核。**一次通过不代表你的付费墙永远没问题**：换个审核员，同一个界面可能有不同解读。

### 我改了什么

- 这个界面上的叉号去掉了。换成一个礼物图标，VoiceOver 读作“独家折扣”，点了才打开优惠。再也没有假装关闭的东西。
- 回到应用时，优惠再也不会自己弹出。
- 折扣通知删掉了。只保留一条温和的提醒，每次安装只发一次，并且只在用户允许通知时发送。它不提价格、不提折扣、不提期限。
- 这条提醒写进了给 App Review 的信息里，包括文案和发送时机。

### 我保留了什么

剩下的部分我也重新审视了一遍，问自己每个元素是否真的给了用户选择。

- **取消购买后的一个优惠。** 如果用户在年度订阅的 Apple 支付面板上点了取消，会弹出一个新人优惠。它只有一个 5 分钟的窗口，不会重新计时：用户在这段时间内再次取消，它会再次弹出。点叉号或“不用了”一下就能关掉，显示的是商品的真实价格。
- **一个真实的 5 分钟倒计时。** 首次显示时，截止时间就保存在设备上。应用关闭后它照样走，重启也不会归零。时间一到，这次安装里优惠就消失了。如果提前关掉，会有一个小标签显示剩余时间，只有点它才会重新打开优惠。
- **一个上锁的宝箱。** 它展示用户在新手引导中获得的物品，而且只展示这些，在应用解锁前保持锁定。没有任何地方说它们会丢失。

这些元素都写进了审核备注。拒审没有点名任何界面，所以我不会说它们得到了 Apple 认可。在我看来，它们是这些机制的透明版本，而且我都申报了。

因为所有问题都在应用内，修复需要一个新 build。TradaZen 于 2026 年 10 月 13 日重新提交审核。

## 会触发 5.6 的付费墙暗黑模式

Apple 不公布清单。同一个机制往往有两个版本：下套的版本和给选择的版本。下表把两者分开，依据是规则条文、其他开发者公开的拒审案例和我自己的经历。透明版本不保证通过，它只是不试图欺骗的那个版本。最后一列说明每一行的依据。

| 操纵版本                                     | 透明版本                                       | 依据                              |
| -------------------------------------------- | ---------------------------------------------- | --------------------------------- |
| 叉号不关闭，反而打开一个优惠                 | 叉号就是关闭。关不掉的界面不显示叉号           | 我在 TradaZen 被拒后已修改        |
| 关闭付费墙时弹出“一次性”优惠                 | 折扣放在一个明确标示的按钮后面                 | Apple 论坛公开的拒审              |
| 用户拒绝后再推第二个优惠，付费墙价格有误导性 | 取消购买后只给一个优惠，真实价格，一下就能关掉 | Cal AI 案例；Superwall 转述的沟通 |
| 回到应用时付费墙或优惠自己重新打开           | 用户触到限制或点了明确标示的按钮时才出现       | 我在 TradaZen 被拒后已修改        |
| 用户从未要求过的促销通知                     | 明确同意后才推促销，并能在应用内退订           | 规则 4.5.4                        |
| 假倒计时，会归零，或结束后优惠又回来         | 真实期限，应用关闭也继续计时，到时就真的结束   | 我对“trick them”的理解，规则 5.6  |
| 编造的奖励，或威胁不买就会消失               | 用户真正获得的东西，展示时不威胁会失去         | 我对规则 5.6 的理解               |
| 免费试用不提自动扣费                         | 试用时长和之后的收费价格就写在按钮旁边         | Apple 订阅页面                    |
| 周价格写得很大，实际扣款金额写得很小         | 实际扣款金额是界面上最醒目的价格               | Apple 订阅页面                    |
| 让人有负罪感的拒绝按钮                       | 中性的拒绝文字，比如“以后再说”或“不用了”       | 我对规则 5.6 的理解               |

Cal AI 案例由 [TechCrunch](https://techcrunch.com/2026/04/21/apples-cal-ai-crackdown-signals-its-still-policing-the-app-store/) 报道：Apple 以 5.6 为由，针对向拒绝第一个订阅优惠的用户展示第二个优惠的做法。同一个付费墙还被以 3.1.2(c) 点名：周价格压过了实际扣款金额，试用隐藏了自动续订。文章没有进一步描述第二个优惠。

另一方面，Superwall 这家卖付费墙工具、也卖这类优惠的公司，转述了 2026 年 6 月与 Apple 的一次[非正式沟通](https://superwall.com/blog/external-checkout-a-b-testing-and-trial-toggles-confirmed-apples-rules-for-ios)。其中，取消购买后展示的优惠被描述为允许的。纠缠则不行：每次打开都回来的优惠，或者只有付钱才能离开的流程。Superwall 也说明这些不是官方规则，审核员仍有自己的判断。所以用户拒绝后再给优惠仍然是个灰色地带：条文没有禁止，有公开的拒审案例，做法很重要。

通知的规则是 [4.5.4](https://developer.apple.com/app-store/review/guidelines/#4.5.4)：没有在应用内取得明确同意，或者没有退订方式，就不能用通知做推广。

价格方面，[Apple 的订阅页面](https://developer.apple.com/app-store/subscriptions/)说得很清楚：实际扣款金额必须是最醒目的价格元素。理由就一句话：“This ensures that people are not misled.” [规则 3.1.2](https://developer.apple.com/app-store/review/guidelines/#3.1.2) 还补充说，Apple 会下架以误导方式或“bait-and-switch”手法销售订阅的应用。

> 我现在用的检验方法：每个按钮做的事是否和它的外观承诺完全一致？用户能不能一下就说不，而且优惠不会自己回来？

更常见的付费墙错误，那些会损失销量但不一定导致被拒的，写在 [iOS 付费墙：新手常犯的 7 个错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)里。

## 如何修复 5.6 拒审

1. **列出整个购买流程。** 付费墙、次级优惠、倒计时、通知、回到应用时的再次推送。Apple 不一定说明针对的是什么。逐个检查是否是透明版本：一下就能关掉、倒计时是真的、价格准确、不会自动回来。凡是像陷阱的都改掉或删掉，不只是最可疑的那一个。
2. **重走审核员的路径。** 删掉应用，重新安装，完成新手引导，然后拒绝一切：关闭、取消、退出应用、再回来。记下每个你没要求就弹出来的界面，并确认能一下关掉。
3. **准备新 build。** 问题在应用里，也就是在打包的代码里。远程更新替代不了 build，我在 [guideline 2.1](https://devoria.fr/zh-hans/blog/app-store-guideline-2-1-rejection-fix) 的指南里解释过。
4. **别留后手。** 通过审核后再远程重新开启优惠，等于向审核员隐藏功能。RevenueCat 自己在关于[挽留优惠](https://www.revenuecat.com/blog/engineering/exit-offers-in-revenuecat-paywalls)的文章里就提醒过别这么干。
5. **在 App Store Connect 里用英文回复**，方法是[回复 App Review 的消息](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/)。

下面是一份模板，取自我的回复和审核备注，有删减。把 build 号和改动换成你自己的，再列出保留的内容：

```text
Hello,

Thank you for your feedback on Guideline 5.6.

Issue: on the subscription screen, the button in the top
corner looked like a close button, but it opened a
discounted offer instead of closing the screen.

Changes in build X:
- Nothing on the subscription screen pretends to close it.
  A clearly labeled button now opens the optional offer.
- The offer never reopens by itself when the user comes
  back to the app.
- The notification announcing a discount has been removed.

Still in this build (also described in the review notes):
- [Each remaining offer: what triggers it, how often it
  appears, how the user dismisses it.]
- [Each remaining reminder: its text, when it is sent,
  and under which conditions.]

If another part of the purchase flow still looks unclear,
please tell me which screen, and I will change it.

Best regards,
```

**你写的内容必须和 build 完全一致。** 如果你保留了某个提醒或优惠，哪怕是自动触发的，也要在回复和审核备注里写清楚。如果你认为审核员判断错了，Apple 允许[向 App Review Board 申诉](https://developer.apple.com/distribute/app-review/)，每次被拒的提交只能申诉一次。对付费墙来说，我觉得修改比争辩更稳妥。其他拒审理由和应对方法见[Apple 为什么拒绝你的应用](https://devoria.fr/zh-hans/blog/apple-app-rejection-reasons-real-cases)。

## 提交前的防 5.6 检查清单

- 每个叉号都能关闭界面。关不掉的界面不显示叉号。
- 每个按钮都说明它做什么，在屏幕上和 VoiceOver 里都是。
- 没有优惠藏在关闭按钮后面。
- 如果保留了因拒绝而触发的优惠，它只有一个不会重新计时的窗口，真实价格，一下就能关掉。
- 回到应用时，没有付费墙或优惠会自己重新打开。
- 没有在应用内取得明确同意，就不发促销通知。
- 没有假倒计时：显示的期限是真的，不会归零，到时就真的结束。
- 界面上显示为已获得的东西，确实已经获得，不威胁会失去。
- 试用显示时长和之后的收费价格。
- 实际扣款金额是界面上最醒目的价格。
- 审核备注描述了 build 里的每个优惠和每条提醒。
- 你已经在 iPhone 和 iPad 上以拒绝一切的方式重走了流程。

## 提交给 Apple 前先让人看看你的付费墙

[Review Kit](https://devoria.fr/zh-hans/kits/app-review) 包含我的提交前检查清单、我修复过的拒审案例，以及两个 Claude Code skill，会检查你的项目、付费墙和商店页面。如果 Apple 拒了，它们会帮你准备回复。想要真人把关，可以[预约和我一小时](https://devoria.fr/zh-hans/coaching)：我们在你的屏幕上一起重走购买流程。被拒后的完整处理方法在[应用被 Apple 拒绝](https://devoria.fr/zh-hans/expertise/app-rejected-by-apple)页面，订阅的技术部分在 [iOS 应用内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)。

如果你在准备第一次上架，[做一下免费诊断](https://devoria.fr/zh-hans/diagnostic)：它会帮你理清步骤顺序，并发给你我的防 Apple 拒审检查清单。首页介绍了如何[开发手机应用](https://devoria.fr/zh-hans)，从一开始就按审核要求设计付费墙。

没人能保证 Apple 一定会通过你的应用。我能做的，是帮你避开一个我已经付出一轮审核代价的 5.6 拒审。

## 常见问题

### 拒审里的“Guideline 5.6 - Developer Code of Conduct”是什么意思？

这是开发者行为准则这条规则的标题。对于带内购的应用，它大多意味着购买流程被认为有操纵性：假关闭、自己回来的优惠、试用或价格的呈现有误导性。拒审信息不一定会说明针对哪个界面。

### Apple 禁止挽留优惠吗？

条文没有明文禁止。RevenueCat 也这么说，同时指出有开发者因此被拒。公开的拒审案例针对的是用户关闭付费墙时弹出的优惠，或用户拒绝后再推的第二个优惠。透明版本的区别在于：优惠是可选的，只有一个不会重新计时的窗口，真实价格，一下就能关掉，不会自己回来，如果有倒计时也是真的。把它写进审核备注。没人能保证审核员会这样理解。

### 没有叉号的付费墙允许吗？

规则没有要求必须有叉号，TradaZen 被拒后我也是这么做的。Apple 拒绝的是看起来像关闭、实际做别的事的按钮。不过，有开发者报告过一个[5.6 拒审](https://developer.apple.com/forums/thread/725056)，原因是一款免费下载应用里的付费墙没有出口。先展示价值再要求试用，并在商店页面写清楚应用是付费的。

### 5.6 被拒后需要新 build 吗？

大多数情况下需要，因为问题出在应用的某个界面或行为上。如果问题在应用之外，比如商店页面或元数据，不提交 build 也可能就够了。拿不准的话，问审核员针对的是哪个界面。

### 5.6 拒审会导致开发者账号被封吗？

规则规定，反复出现操纵行为会被踢出开发者计划。规则也规定，被关闭的账号可以在提交书面改进计划、经 Apple 批准并核实后恢复。所以第一次被拒就该把整个购买流程改干净。

### 5.6 和 5.6.3 有什么区别？

5.6 是总的行为准则：尊重、信任、不靠耍花招换来购买。5.6.3 是它的一条子规则，针对操纵排名、搜索和评论。Apple 曾因 Solys 在新手引导里放了评分请求而引用这条规则。


## 你的项目

[Review Kit](https://devoria.fr/zh-hans/kits/app-review)：我的 App Store 审核清单、我被 Apple 拒审后的修正方案、Google Play 审核清单，以及三个 Claude Code skill。¥369。

[iOS & Android Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 打造你的 iPhone 和 Android 应用：我自己应用的起步代码、上架商店的完整流程，以及全部工具包。¥739。

[诊断：你离自己的 iPhone 应用还差什么](https://devoria.fr/zh-hans/diagnostic)：7 个问题，60 秒：看清真正阻碍你发布 iPhone 应用的原因，拿到你的 4 步路线和适合你的套件。
