Guideline 3.1.1:什么时候必须用 App 内购买
作者:Mehdi Azizi
发布于 ,9分钟
Guideline 3.1.1:App 内解锁的数字内容或功能都必须走 Apple 的 App 内购买。附例外、欧盟与美国规则及修复方法。
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 那篇指南里。
Guideline 3.1.1 说了什么?
3.1.1“In-App Purchase”是 App Review Guidelines 中 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 论坛上公开的一次拒审中,消息说该 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 文档,它适用于所有类型的 App 内购买:订阅、消耗型和非消耗型项目。你在 App Store Connect 中创建,用户在 App Store 或你的 App 里输入。
例外:什么时候不要求 App 内购买
规则 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) 明确,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 提供这一信息。
欧盟
根据 Apple 关于欧盟付款选项的页面,新条款自 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 文档中。
修复 3.1.1 拒审并回复 Apple
- 找到那扇门。 消息会指出相关的内容或页面:在别处购买的内容、按钮、兑换码、链接。
- 关掉它,或者补上对应的购买。 要么删除按钮或兑换码,要么通过 App 内购买销售同样的内容。
- 只有确实符合时才援引例外。 引用 3.1.3 的具体条款,用两句话说明你的情况为什么适用。
- 给审核员提供测试条件。 在审核备注中提供演示账号和进入付费墙的路径,我在 guideline 2.1 那篇指南里讲过。
你在 App Store Connect 的 App Review 部分回复,按照回复 App Review的流程操作。下面是针对最常见情况(在网站上购买的内容)的模板。这只是示例:把构建版本、产品和操作路径换成你自己的。
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 申诉。
接入 App 内购买,不必全部重写
对新手来说,最简单的路径是先在 App Store Connect 中创建产品,再用 RevenueCat 把它们接入 App:步骤见 RevenueCat:搭建 App 内订阅。如果你在两种模式之间犹豫,读一下订阅还是一次性购买。如果你用无代码工具开发,确认它支持 App 内购买:这是不写代码做 App 时要检查的一点。
一旦你的 App 内购买是订阅,还要遵守 3.1.2:醒目展示扣费金额、时长、续订方式、链接。最常见的页面错误见 iOS 付费墙:新手常犯的 7 个错误。
提交前的 3.1.1 检查清单
- App 内能解锁的一切(功能、内容、关卡、货币)都通过 App 内购买购买。
- 没有任何按钮、链接或文字指向外部付款,美国店面或已获批的地区计划除外。
- 产品页描述中没有提及任何其他付款方式。
- 在你网站上销售的内容,在 App 内也能通过 App 内购买买到。
- 没有任何许可证密钥、二维码、自制兑换码或加密货币能解锁任何东西。
- 要赠送访问权限,使用 Apple 的优惠代码。
- 购买的点数不会过期,“Restore Purchases”按钮可以正常使用。
- 每个付费宝箱或抽奖在购买前都显示概率。
- 实体商品或 App 外服务通过 Apple Pay 或银行卡支付,而不是 App 内购买。
- 审核备注写明在哪里找到购买项目;如果援引例外,写明是哪一条。
提交前检查你的 App
如果你的 App 刚因 3.1.1 被拒,Apple Review Kit 能帮你找到被引用的规则、它的要求,以及修复和回复的示例。它给测试员准备的备注涵盖了 App 内购买。如果想要真人帮你看,和我预约一小时:我们一起读 Apple 的消息,找出它看到的那扇门。完整流程见 App 被 Apple 拒审页面,搭建购买功能见 iOS App 内订阅页面。
如果你在准备第一次上架,做一下免费诊断:它会帮你理清步骤顺序,并把我的 Apple 防拒审清单发给你。如果想开发一款移动 App,从一开始就通过 App 内购买变现,iOS Kit 提供的代码已经配好了付费墙和订阅。
没人能保证 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 里的外部付款按钮或自制兑换码。合规性仍需逐个页面检查,产品页也要检查。