# RevenueCat iOS 订阅接入教程

> RevenueCat 把 App Store Connect 产品接入你的 App 并管理访问权限。接入第一个订阅的步骤。

原始页面：[RevenueCat iOS 订阅接入教程](https://devoria.fr/zh-hans/blog/revenuecat-ios-in-app-subscription-setup)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-10-01
内容最后修订：2026-10-09


## 为什么用 RevenueCat，而不是只用 StoreKit

StoreKit 是 Apple 的框架，不用任何第三方服务就能卖订阅。但对新手来说，自己写完整的购买、恢复和访问权限校验逻辑，意味着一大堆要维护的代码，还有很多容易漏掉的边界情况：换设备、过期、退款。

[RevenueCat](https://www.revenuecat.com/docs/welcome/overview) 夹在 App Store Connect 和你的 App 之间：它读取你的产品，管理有效订阅，让你不用自己写这一层。你可以在后台控制价格和优惠，每次改动都不用重新发布 App。

## 第 1 步：在 App Store Connect 中创建产品

在接入 RevenueCat 之前，产品必须先在 Apple 那边存在。在 App Store Connect 里创建一个订阅群组，然后创建一个或多个级别，设置时长（比如按月或按年）和各地区的价格。每个档位还要填写展示给用户的文案：Apple 要求先填好这些，才会在审核中接受该产品。

这一步常见的疏漏：产品创建了，却从没和对应版本一起提交到 App 的首次审核。一个从未包含在 App 提交中的待处理产品，对用户是不可见的，哪怕 RevenueCat 已经能看到它。

## 第 2 步：把 RevenueCat 连接到你的 App

在 RevenueCat 里，你创建一个项目，绑定你的 App Store Connect API 密钥，让 RevenueCat 自动同步产品，然后定义 “entitlements”，也就是访问权限。一个 entitlement 代表订阅解锁的内容，比如 App 的完整访问权，和具体是哪个产品触发的无关。

这层间接关系很有用：以后如果你调整优惠结构，比如加一个年付档位，只需把新产品关联到同一个 entitlement，App 里校验访问权限的代码完全不用动。

在 App 这边，[RevenueCat 的 React Native SDK](https://www.revenuecat.com/docs/getting-started/installation/reactnative) 通过专用插件安装到 Expo 项目中，并提供一个简单的函数，用来判断当前用户是否拥有有效的 entitlement。

## 第 3 步：搭建你的付费墙

付费墙是展示优惠的界面，也是触发购买的地方。RevenueCat 提供可在后台配置的付费墙，修改时无需重新发布 App；如果你想完全掌控设计，也可以用 SDK 自己做。

位置和设计一样重要。在用户还没看到 App 价值之前就弹出的付费墙，转化率通常不如在第一次成功操作之后出现的付费墙。[新手常犯的 iOS 付费墙错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)这篇指南详细讲了这一阶段最常见的坑，不只是技术接入层面的问题。

## 第 4 步：测试购买、恢复和过期

这是最常被草草了事的一步，却恰恰是 Apple 查得最多的一步。提交前，三个场景必须都能正常工作：

**购买。** 用沙盒测试账号购买后，entitlement 必须立即解锁，而且你的 App 要能响应这个变化，不需要重启 App。

**恢复。** 在新设备上或重装后，用同一个 Apple 账号，“恢复购买”按钮必须能找回有效订阅。Apple 在审核中一定会检查这个流程，缺少它或它不能正常工作，是依据 [guideline 3.1.1](https://devoria.fr/zh-hans/blog/guideline-3-1-1-in-app-purchase-required) 被拒的常见原因。

**过期。** 在沙盒环境中，订阅几分钟就会过期，而不是几个月，这样你可以确认周期结束后访问权限会正确关闭，不用等一个真实的计费周期。

## RevenueCat 替代不了的东西

RevenueCat 管的是购买机制，不管你的商品页面和付费墙是否符合 [guideline 3.1.2](https://devoria.fr/zh-hans/blog/guideline-3-1-2-subscription-rejection-paywall)。在 App Store 描述里正确说明订阅、写明准确价格和时长、填写使用条款，这些始终是你自己的事。[iOS 上选订阅还是一次性购买](https://devoria.fr/zh-hans/blog/ios-app-subscription-vs-one-time-purchase)这篇能帮你在走到这一技术步骤之前选对模式。

另外，月收入超过一定门槛后，RevenueCat 会抽取一部分收入作为佣金，这是在 Apple 对 App 内订阅收取的佣金之外的。在围绕这两笔佣金设计商业模式之前，先去他们官网确认当前的收费档位。

## 新手最常犯的错误

**忘了加载状态。** 启动时，RevenueCat 需要一点时间来获取用户的访问权限。如果你的 App 在拿到响应前默认显示付费内容，没有订阅的用户可能会短暂看到他没付费的内容。要做一个明确的加载状态，而不是乐观地默认显示。

**在错误的地方校验权限。** 每次打开付费界面都要重新校验有效的 entitlement，而不是只在启动时校验一次。如果用户在使用 App 期间取消了订阅或订阅过期，下一个界面就应该反映这个变化。

**混淆沙盒环境和生产环境。** 产品 ID 和沙盒测试账号与生产环境是分开的。用错 Apple 账号在沙盒里测试通过，或者产品只在生产环境中创建，都可能让你误以为一切就绪。

## 一个经过验证的 App，而不只是能编译的 App

一个在你自己账号上快速测试“能用”的订阅，并不能保证它在另一台设备上恢复或真实过期时还能正常工作。而这正是 Apple 审核员要检查的。[iOS 应用内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)这一页详细讲解了整条链路，从创建产品到最终验证。

如果你想从一个付费墙和订阅已经写进代码的基础开始，[iOS Kit](https://devoria.fr/zh-hans/kits/ios) 的起步代码里就有。想像审核员那样检查你的订阅，[Apple Review Kit](https://devoria.fr/zh-hans/kits/review-apple) 收录了我提交前的检查清单，以及关于应用内购买要留给测试人员的备注。

## 常见问题

### 如何在 iOS 上接入 RevenueCat 订阅？

分四步。先在 App Store Connect 中创建产品。然后用你的 App Store Connect API 密钥连接 RevenueCat，定义 entitlements（访问权限），再搭建付费墙。最后测试购买、恢复和过期：这一步常被草草了事，却正是 Apple 要检查的。

### 在 iOS 上卖订阅必须用 RevenueCat 吗？

不必。StoreKit 是 Apple 的框架，不用第三方服务就能卖订阅。但那样你就得自己写全部的购买、恢复和访问权限校验逻辑，还要处理容易漏掉的边界情况：换设备、过期、退款。RevenueCat 夹在 App Store Connect 和你的 App 之间，帮你省掉这一层。

### RevenueCat 里的 entitlement 是什么？

entitlement 就是访问权限：它代表订阅解锁的内容，比如 App 的完整访问权，不管具体是哪个产品触发的。以后你加一个年付档位，只需把新产品关联到同一个 entitlement。App 里校验访问权限的代码不用改。

### 提交给 Apple 之前如何测试 RevenueCat 订阅？

提交前三个场景必须都能正常工作。购买：用沙盒测试账号，访问权限立即解锁，无需重启 App。恢复：在新设备上或重装后，用同一个 Apple 账号，恢复按钮能找回有效订阅。过期：在沙盒中订阅几分钟就过期，你可以确认访问权限会关闭。

### 为什么 RevenueCat 里能看到的产品，用户却看不到？

通常是因为这个产品从没包含在 App 提交中。在 App Store Connect 中创建、却从未和对应版本一起提交首次审核的产品，对用户是不可见的，哪怕 RevenueCat 已经能看到它。这是创建产品阶段的常见疏漏。

### RevenueCat 会对订阅收佣金吗？

月收入超过一定门槛后，RevenueCat 会抽取一部分收入作为佣金。这笔佣金叠加在 Apple 对 App 内订阅收取的佣金之上。在围绕这两笔佣金设计商业模式之前，先去 RevenueCat 官网确认当前的收费档位。


## 你的项目

[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 €。
