# Guideline 3.1.1：什么时候必须用 App 内购买

> Guideline 3.1.1：App 内解锁的数字内容或功能都必须走 Apple 的 App 内购买。附例外、欧盟与美国规则及修复方法。

原始页面：[Guideline 3.1.1：什么时候必须用 App 内购买](https://devoria.fr/zh-hans/blog/guideline-3-1-1-in-app-purchase-required)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-10-25
内容最后修订：2026-10-25


Guideline 3.1.1 规定：只要你的 App 解锁数字内容或功能，就必须使用 Apple 的 App 内购买，包括订阅、完整版、游戏货币、高级内容。**被 3.1.1 拒审，意味着 Apple 发现了通往这些内容的另一扇门**：在你网站上付款、许可证密钥、自制兑换码、跳转到付款页面的按钮。修复办法就是改用 App 内购买，除非你的情况属于某个例外或地区性规则。

我自己发布 iOS App，其中带订阅的 App 都通过 Apple 的 App 内购买销售。我从没被 3.1.1 拒过，也不会假装被拒过。这篇指南依据的是官方原文（2026 年 6 月 8 日版本，我在 2026 年 10 月 15 日阅读）以及 Apple 发布的地区性条款。与之相邻的订阅问题，以及两次真实的拒审，写在 [guideline 3.1.2](https://devoria.fr/zh-hans/blog/guideline-3-1-2-subscription-rejection-paywall) 那篇指南里。

## Guideline 3.1.1 说了什么？

3.1.1“In-App Purchase”是 [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#3.1.1) 中 3.1“Payments”部分的第一条。所以邮件标题是“Guideline 3.1.1 - Business - Payments - In-App Purchase”。第一句话就点明了核心：要在 App 内解锁功能，“you must use in-app purchase”，你必须使用 App 内购买。Apple 列举了订阅、游戏货币、关卡、高级内容和完整版。

下一句针对的是绕道做法。**App 不能用自己的机制来解锁内容**：Apple 点名了许可证密钥、增强现实标记、二维码、加密货币和加密钱包。

同一条规则还附带了几项常被忽略的要求：

- 通过 App 内购买买到的点数和货币不能过期，所有可恢复的购买都要有恢复机制；
- 付费宝箱或抽奖（“loot box”）要在购买前展示获得每类物品的概率；
- 数字礼品卡、代金券或优惠券在 App 内销售时要走 App 内购买；邮寄的实体卡可以用其他方式支付；
- 没有订阅的 App 可以提供限时试用，形式是一个名为“XX-day Trial”的免费 App 内购买项目，并在开始前说明试用时长、到期后会失去什么以及需要支付多少；
- 可以给开发者打赏，但要通过 App 内购买。

## 会触发 3.1.1 拒审的情况

| App 的做法                     | Apple 拒审的原因      | 修复方法                |
| ------------------------------ | --------------------- | ----------------------- |
| 解锁在你网站上购买的内容       | 没有对应的 App 内购买 | 同时通过 App 内购买销售 |
| 显示“在我们网站上付款”         | 引导至其他付款方式    | 删除按钮，除非属于例外  |
| 要求输入许可证密钥或自制兑换码 | 禁止的解锁机制        | 使用 Apple 的优惠代码   |
| 用加密货币解锁                 | 禁止的解锁机制        | App 内购买              |
| 销售会过期的点数               | 违反 3.1.1 的要求     | 点数永久有效并支持恢复  |
| 销售不显示概率的宝箱           | 未显示概率            | 购买前可见概率          |

第一行是最常被误解的。在 [Apple 论坛](https://developer.apple.com/forums/thread/794034)上公开的一次拒审中，消息说该 App“accesses digital content purchased outside the app”，即访问了在别处购买的内容，“but that content isn't available to purchase using in-app purchase”。**Apple 不是怪你有一个卖东西的网站，而是怪 App 里没有提供同样的 Apple 购买渠道。**

如果想提供免费访问或折扣，Apple 有自己的机制：优惠代码。根据 [StoreKit 文档](https://developer.apple.com/documentation/storekit/implementing-offer-codes-in-your-app)，它适用于所有类型的 App 内购买：订阅、消耗型和非消耗型项目。你在 App Store Connect 中创建，用户在 App Store 或你的 App 里输入。

## 例外：什么时候不要求 App 内购买

[规则 3.1.3](https://developer.apple.com/app-store/review/guidelines/#3.1.3) 列出了可以使用其他付款方式的 App。下面是我用来判断一个项目归在哪一类的对照表。

| 你的情况                           | 必须用 App 内购买？           | 规则     |
| ---------------------------------- | ----------------------------- | -------- |
| 订阅、完整版、数字内容             | 是                            | 3.1.1    |
| 实体商品、在 App 外消费的服务      | 否，必须用其他方式            | 3.1.3(e) |
| 一对一的实时课程或咨询             | 否                            | 3.1.3(d) |
| 多人实时课程                       | 是                            | 3.1.3(d) |
| 在别处购买的报刊、图书、音乐、视频 | 访问时不需要                  | 3.1.3(a) |
| 在你网站上购买的多平台服务         | 若同时提供 App 内购买则可访问 | 3.1.3(b) |
| 卖给企业供员工使用的工具           | 否                            | 3.1.3(c) |
| 网页工具的免费配套 App，不含购买   | 否                            | 3.1.3(f) |

有两点限制。享受例外的 App，在 App 内仍不能引导用户使用其他付款方式，美国店面和 Apple 规定的情况除外。另一方面，Apple 明确说“Developers can send communications outside of the app”：你可以在 App 之外联系你的用户，比如通过电子邮件。

## 2026 年 10 月的各地区规则

这部分条文变化很快。以下内容依据我在 2026 年 10 月 15 日阅读的 Apple 原文：**在编写外部支付代码之前，请重新读一遍**。

| 地区             | 除 App 内购买外还允许什么                      |
| ---------------- | ---------------------------------------------- |
| 美国             | 指向其他付款方式的按钮和链接，无需 entitlement |
| 欧盟             | App 内替代支付和 App 外优惠，有限制条件        |
| 日本、巴西、韩国 | 各自的计划，需申请 entitlement                 |
| 其他国家         | 不得有指向其他付款方式的按钮、链接或号召       |

### 美国

[规则 3.1.1(a)](https://developer.apple.com/app-store/review/guidelines/#3.1.1a) 明确，entitlement“are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps”。所以在美国店面，放一个指向你网站的按钮是允许的。但你的二进制文件在所有地区都是同一个：如果加了这个按钮，App 就必须知道用户所在的店面。StoreKit 通过 [Storefront](https://developer.apple.com/documentation/storekit/storefront) 提供这一信息。

### 欧盟

根据 Apple 关于[欧盟付款选项](https://developer.apple.com/support/payment-options-on-the-app-store-in-the-eu/)的页面，新条款自 2026 年 10 月 1 日起生效。你可以只保留 App 内购买，什么都不用改。你也可以在 App 内提供第三方支付服务商，或提供 App 外的优惠，比如跳转到你的网站。此时 Apple 的要求主要包括：

- 需要“StoreKit External Purchases or Offers”entitlement；若在 App 内放链接或付款，还要使用系统的信息提示窗口；
- 两种方式同时出现在屏幕上时，App 内购买的醒目程度至少与另一种相同；
- 你的 App Store 产品页上不得提及这些付款方式；
- 对未成年人要有家长控制，13 岁以下（部分国家门槛更高）不得提供 App 外优惠；
- 12 个月内在所有欧盟店面保持同一选择。

不同选项会收取不同的佣金。做决定之前，先读同一页面上的相关部分。

### 其他国家

在其他地区，规则依然严格：“apps and their metadata may not include buttons, external links, or other calls to action”，不能指向其他付款方式。“metadata”这个词很关键：**描述里写“在我们网站上更便宜”同样违反规则**。部分国家，包括日本、巴西和韩国，有各自的计划，列在 [External Purchase 文档](https://developer.apple.com/documentation/storekit/external-purchase)中。

## 修复 3.1.1 拒审并回复 Apple

1. **找到那扇门。** 消息会指出相关的内容或页面：在别处购买的内容、按钮、兑换码、链接。
2. **关掉它，或者补上对应的购买。** 要么删除按钮或兑换码，要么通过 App 内购买销售同样的内容。
3. **只有确实符合时才援引例外。** 引用 3.1.3 的具体条款，用两句话说明你的情况为什么适用。
4. **给审核员提供测试条件。** 在审核备注中提供演示账号和进入付费墙的路径，我在 [guideline 2.1](https://devoria.fr/zh-hans/blog/app-store-guideline-2-1-rejection-fix) 那篇指南里讲过。

你在 App Store Connect 的 App Review 部分回复，按照[回复 App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/)的流程操作。下面是针对最常见情况（在网站上购买的内容）的模板。这只是示例：把构建版本、产品和操作路径换成你自己的。

```text
Hello,

Thank you for your review.

Issue: the app gave access to premium content purchased on our
website, without offering the same purchase in the app.

Fix in build X:
- Premium access is now available as an auto-renewable
  subscription through in-app purchase, on the paywall.
- The "Subscribe on our website" button has been removed.
- A "Restore Purchases" button is available on the paywall.

How to verify: launch the app and open any premium screen.
The paywall shows the in-app purchase options.

Best regards,
```

按钮和付费墙都在代码里：需要提交新的构建版本。如果你仍确信自己的情况属于例外，Apple 也允许你[向 App Review Board 申诉](https://developer.apple.com/distribute/app-review/)。

## 接入 App 内购买，不必全部重写

对新手来说，最简单的路径是先在 App Store Connect 中创建产品，再用 RevenueCat 把它们接入 App：步骤见 [RevenueCat：搭建 App 内订阅](https://devoria.fr/zh-hans/blog/revenuecat-ios-in-app-subscription-setup)。如果你在两种模式之间犹豫，读一下[订阅还是一次性购买](https://devoria.fr/zh-hans/blog/ios-app-subscription-vs-one-time-purchase)。如果你用无代码工具开发，确认它支持 App 内购买：这是[不写代码做 App](https://devoria.fr/zh-hans/blog/create-app-without-coding-no-code-ai) 时要检查的一点。

一旦你的 App 内购买是订阅，还要遵守 3.1.2：醒目展示扣费金额、时长、续订方式、链接。最常见的页面错误见 [iOS 付费墙：新手常犯的 7 个错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)。

## 提交前的 3.1.1 检查清单

- App 内能解锁的一切（功能、内容、关卡、货币）都通过 App 内购买购买。
- 没有任何按钮、链接或文字指向外部付款，美国店面或已获批的地区计划除外。
- 产品页描述中没有提及任何其他付款方式。
- 在你网站上销售的内容，在 App 内也能通过 App 内购买买到。
- 没有任何许可证密钥、二维码、自制兑换码或加密货币能解锁任何东西。
- 要赠送访问权限，使用 Apple 的优惠代码。
- 购买的点数不会过期，“Restore Purchases”按钮可以正常使用。
- 每个付费宝箱或抽奖在购买前都显示概率。
- 实体商品或 App 外服务通过 Apple Pay 或银行卡支付，而不是 App 内购买。
- 审核备注写明在哪里找到购买项目；如果援引例外，写明是哪一条。

## 提交前检查你的 App

如果你的 App 刚因 3.1.1 被拒，[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple) 能帮你找到被引用的规则、它的要求，以及修复和回复的示例。它给测试员准备的备注涵盖了 App 内购买。如果想要真人帮你看，[和我预约一小时](https://devoria.fr/zh-hans/coaching)：我们一起读 Apple 的消息，找出它看到的那扇门。完整流程见 [App 被 Apple 拒审](https://devoria.fr/zh-hans/expertise/app-rejected-by-apple)页面，搭建购买功能见 [iOS App 内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)页面。

如果你在准备第一次上架，[做一下免费诊断](https://devoria.fr/zh-hans/diagnostic)：它会帮你理清步骤顺序，并把我的 Apple 防拒审清单发给你。如果想[开发一款移动 App](https://devoria.fr/zh-hans)，从一开始就通过 App 内购买变现，[iOS Kit](https://devoria.fr/zh-hans/kits/ios) 提供的代码已经配好了付费墙和订阅。

没人能保证 Apple 一定会通过你的 App。我能做的，是在你写代码之前帮你选对付款方式。

## 常见问题

### “Guideline 3.1.1 - Business - Payments - In-App Purchase”是什么意思？

这是 Apple 消息中关于 App 内购买规则的完整标题。它表示你的 App 通过 App 内购买以外的途径提供数字内容或功能：网站付款、兑换码、许可证密钥，或指向付款页面的链接。

### 可以放一个链接，让用户去我的网站更便宜地付款吗？

在美国店面可以：规则允许按钮和链接，无需 entitlement。在欧盟，拿到 Apple 的 entitlement 并满足其条件后可以。其他地区，除非有地区性计划，App 和产品页都不能指向其他付款方式。

### 可以用促销码解锁 App 吗？

自制兑换码不行：3.1.1 禁止 App 自有的解锁机制，比如许可证密钥。请使用在 App Store Connect 中创建的 Apple 优惠代码。它适用于订阅，也适用于其他类型的 App 内购买。

### 卖实体商品或服务需要用 App 内购买吗？

不需要。实体商品或在 App 外消费的服务，比如外卖或打车，必须使用其他付款方式，即 Apple Pay 或银行卡。一对一的实时课程也可以不用，但多人实时课程不行。

### 在我网站上订阅的客户可以在 App 里登录吗？

对多平台服务来说可以，前提是同样的访问权限在 App 内也能通过 App 内购买买到。这是规则 3.1.3(b)。如果 App 内没有这个购买选项，就又回到了典型的 3.1.1 拒审：内容在别处购买，却无法通过 Apple 购买。

### 用 RevenueCat 就够满足 3.1.1 了吗？

RevenueCat 基于 Apple 的 App 内购买，所以它本身不会造成 3.1.1 问题。但它不会替你删掉 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 €。
