在移动应用的订阅变现策略中,RevenueCat 已经成为众多开发者的首选后端服务平台。它有效解决了多个关键问题:
- Google 与 Apple 的订阅状态验证
- 用户权益的集中化管理
- Webhook 配置及数据统计分析
- 价格、优惠方案(Offer)和订阅组的统一维护
- 支持跨平台(iOS 与 Android)的标准化 SDK 接入
本文将从零开始,详细指导你完成 Google Play 与 RevenueCat 的完整集成流程,帮助你规避常见错误和配置陷阱。
一、前期准备事项
在正式接入前,请确保已具备以下条件:
| 项目 |
说明 |
| Google Play Console 开发者账号 |
已完成注册并支付开发者费用;至少上传过一个构建版本(如内部测试版本),否则无法启用应用内商品功能 |
| RevenueCat 账号 |
使用免费版即可满足基础需求 |
| Google Cloud Platform (GCP) 账号 |
用于生成服务账户(Service Account)的 JSON 密钥文件 |
| App 内订阅界面 |
可提前设计好 UI,后续通过 RevenueCat SDK 实现逻辑对接 |
二、创建 Google Play 订阅产品
注意:必须先在 Google Play 上上传 APK 或 AAB 构建包,才能解锁订阅管理页面。
1. 进入订阅管理界面
导航路径如下:
Monetize with play → Products → Subscriptions
若首次使用,系统会提示:
"Your app doesn’t have any subscriptions yet"
点击 Create subscription 按钮开始创建。
2. 设置订阅项
建议按照以下格式进行配置:
| 字段 |
示例值 |
| Product ID |
linguadiary_monthly_1 |
| Base Plan ID |
monthly |
| Duration |
P1M(代表一个月) |
| Price |
$4.99(仅作示例) |
接着添加年费订阅方案:
| 字段 |
示例值 |
| Product ID |
linguadiary_yearly_12 |
| Base Plan ID |
yearly |
| Duration |
P1Y(表示一年) |
3. 配置税务信息与地区分发范围
此步骤为必填项,否则订阅无法在全球或指定区域销售。
三、在 Google Cloud Platform 创建 Service Account 并导出 JSON 密钥(核心步骤)
该 JSON 文件是 RevenueCat 验证 Google Play 订阅状态的核心凭证。
1. 登录 GCP 控制台
访问地址:https://console.cloud.google.com
2. 确认与 Google Play 关联的 GCP 项目
进入 Play Console 的 “API access” 页面,查看当前绑定的 GCP 项目名称,并在 GCP 中选择相同项目。
3. 创建服务账户(Service Account)
路径为:
IAM & Admin → Service Accounts → Create Service Account
填写信息:
- 名称:revenuecat-play-service
- 角色权限:务必勾选以下两项:
- Service Account Admin
- Pub/Sub Admin
若缺少权限,后续可能出现如下报错:
Your Google service account credentials do not have permissions to access the Google Cloud Pub/Sub API
4. 生成并下载 JSON 密钥文件
操作路径:Service Account → Keys → Add Key → 选择 JSON
系统将自动下载一个 JSON 格式的密钥文件。
xxxx-revenuecat.json
此文件将在下一步上传至 RevenueCat。
四、授权 Service Account 访问 Google Play 数据
回到 Google Play Console,在 “设置 → 用户与权限” 中,将刚才创建的服务账户添加为项目成员,并赋予适当访问权限。
五、在 RevenueCat 中绑定 Google Play 商店
进入 RevenueCat 后台:
RevenueCat → Projects → Apps → (你的 Android App)
1. 添加商店类型:Google Play
选择 “Add Store” → “Google Play”,然后上传之前生成的 JSON 密钥文件。
2. 在 RevenueCat 中创建对应产品
路径:
Products → New Product
填写内容时需注意:
- Product ID 必须与 Google Play 中定义的完全一致(包括大小写)
- 可新建一个 Offering,例如命名为
default
成功绑定后,RevenueCat 会自动同步 Google Play 的定价、周期、优惠方案等信息。
六、在客户端集成 RevenueCat SDK(以 Flutter 为例)
完成后台配置后,需在 App 内集成 SDK 以实现订阅功能调用与状态监听。
import 'package:purchases_flutter/purchases_flutter.dart';
void main() async {
await Purchases.configure(PurchasesConfiguration(
"public_sdk_key_google",
));
}
// 获取订阅产品
final offerings = await Purchases.getOfferings();
final package = offerings.current?.availablePackages.first;
// 购买
await Purchases.purchasePackage(package);
// 查询是否是 Pro
final info = await Purchases.getCustomerInfo();
final isPro = info.entitlements.all["pro"]?.isActive ?? false;
七、常见问题排查指南(避坑清单)
1. RevenueCat 报错:CONFIGURATION_ERROR
可能原因包括:
- Google Play 中未填写本地化语言描述
- Base Plan 处于非激活状态(未启用)
- 订阅产品仍处于草稿(Draft)状态,未发布
- Service Account 权限不足
- Google Play 未开启 API access 授权
- Google Cloud Pub/Sub API 未启用
2. 出现提示:“These products are not found”
常见原因有:
- Product ID 不匹配(注意大小写敏感)
- Google Play 中订阅仍为草稿状态,未正式发布
- 未正确选择可销售的国家或地区
- Base Plan 未设置为 Active 状态
即使所有配置看似完成,若仍未显示产品,请检查是否遗漏了账单(Billing)功能的启用——务必进入相关菜单手动开启。

3. Offerings 加载失败的常见原因
当 SDK 无法加载 Offerings 时,通常由以下几种情况导致:
- Google Play 未被 RevenueCat 成功读取
- 服务账号所使用的 JSON 文件权限配置不完整
- 应用当前设备未开启网络连接
八、免费订阅测试流程
为了验证订阅功能是否正常,可按照以下步骤进行测试:
- 进入 Google Play 控制台的 License Testing 页面,添加用于测试的 Gmail 账户
- 卸载当前设备上的应用
- 使用已添加的测试邮箱登录设备
- 通过 Closed Testing 渠道重新下载应用
- 在购买界面中,价格将显示为 0 或 $0.01,表示测试环境生效
九、正式版本发布准备
确认订阅功能运行无误后,即可进行正式发布:
- 将应用提交至正式发布通道
- RevenueCat 将自动处理并验证所有支付交易
- 开发者只需专注于订阅界面展示及用户权益管理
结语
集成 Google Play 订阅功能时,最常见的问题集中在以下几个方面:
- API access 权限未完全开启
- 服务账号的 JSON 文件缺少必要权限
- Google Play 商店中的本地化信息未填写完整
- 基础订阅计划(Base plan)处于未激活状态
- RevenueCat 平台未正确绑定对应的应用程序
本文内容至此结束。