RevenueCat 接入 Google Play 订阅全流程详解(2025 最新)

在移动应用的订阅变现方案中,RevenueCat 已经成为开发者最常用的后台服务之一。它帮我们解决了:

  • Google/Apple 订阅验证
  • 用户权益统一管理
  • Webhook & 分析
  • 价格、Offer、订阅组管理
  • 跨平台(iOS + Android)统一 SDK

本文将从零开始,带你完成 Google Play + RevenueCat 的完整接入流程,避免你踩坑。

一、准备工作

在开始前,你需要准备以下内容:

项目

描述

Google Play Console 开发者账号

已完成注册、缴费

已上传至少一个 build(内部测试也行)

才能启用应用产品区

RevenueCat 账号

免费版即可

Google Cloud Platform (GCP) 账号

用于生成 Service Account JSON

App 内已准备订阅 UI

可后续接 RevenueCat SDK

二、在 Google Play Console 创建订阅产品

注意:Google Play 必须先上传一个 APK/AAB 后,才会解锁订阅页面。

1. 进入订阅页面

路径:

csharp 复制代码
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(1年)

3. 添加税务 & 国家分发

必要,不然订阅无法售卖。

三、在 Google Cloud Platform 生成 Service Account JSON(最关键)

这是 RevenueCat 用来验证 Google Play 订阅的关键文件。

1. 进入 GCP 控制台

console.cloud.google.com

2. 确保与 Google Play 绑定同一个项目

Play Console 的 API access 会告诉你当前使用的 "GCP 项目"。

进入同名项目即可。

3. 创建 Service Account

路径:

sql 复制代码
IAM & Admin → Service Accounts → Create Service Account

填写:

  • 名称:revenuecat-play-service
  • Role(权限):必须勾选 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

会下载一个:

复制代码
xxxx-revenuecat.json

这是要上传到 RevenueCat 的。

四、在 Google Play Console 授权这个 Service Account

五、在 RevenueCat 绑定 Google Play

进入:

复制代码
RevenueCat → Projects → Apps → (你的 Android App)

选择:

1. Add Store → Google Play

上传你刚才下载的 JSON。

2. 在 RevenueCat 创建产品

路径:

sql 复制代码
Products → New Product

填写:

  • Product ID(必须与 Google Play 完全一致)
  • Offering(可添加 default)

RevenueCat 会自动同步 Google Play 价格、时长、Offer。

六、在 App 内实现 RevenueCat SDK(Flutter 示例)

ini 复制代码
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 没启用
  • 未发布
  • Service Account 权限不够
  • Google Play 未启用 API access 授权
  • Google Cloud Pub/Sub 未开

2. 看到 These products are not found

原因:

  • Product ID 不一致(大小写不一致都不行)
  • Google Play 未发布(Draft 状态)
  • 未勾选国家/地区
  • Base Plan 没启用(must be Active)

所有东西都准备好了,结果还是查不出来产品,一定进去这个菜单开启bill

3. SDK 一直加载不到 Offerings

原因:

  • RevenueCat 未成功读取 Google Play
  • 服务账号 JSON 权限不足
  • App 没有开网络

八、测试订阅(免费)

  1. 在 Google Play → License Testing 添加 Gmail 测试账户
  2. 删掉 app
  3. 登录测试 Gmail
  4. 从 Closed Testing 下载你 app
  5. 购买会显示价格 0 或 $0.01

九、发布正式版本

当订阅正常工作 →

发布 app →

RevenueCat 负责自动验证所有付款 →

你只专注展示订阅 UI 和权益即可。

结语

接入 Google Play 的订阅最容易踩坑在:

  • API access 权限不完整
  • Service Account JSON 权限缺失
  • Google Play 本地化没填
  • Base plan 未激活
  • RevenueCat 未正确绑定应用
相关推荐
旧时光_2 小时前
第4章:布局类组件 —— 4.5 流式布局(Wrap、Flow)
flutter
用户69371750013842 小时前
4.Kotlin 流程控制:强大的 when 表达式:取代 Switch
android·后端·kotlin
用户69371750013842 小时前
5.Kotlin 流程控制:循环的艺术:for 循环与区间 (Range)
android·后端·kotlin
Android系统攻城狮3 小时前
Android ALSA驱动进阶之获取周期帧数snd_pcm_lib_period_frames:用法实例(九十五)
android·pcm·android内核·音频进阶·周期帧数
程序员老刘3 小时前
Flutter 3.38 版本更新:客户端开发者需要关注这三点?
flutter·客户端
雨白5 小时前
Jetpack Compose 实战:自定义自适应分段按钮 (Segmented Button)
android·android jetpack
The best are water5 小时前
MySQL FEDERATED引擎跨服务器数据同步完整方案
android·服务器·mysql
北极的树6 小时前
Gemini 3.0发布,但Generative UI更让我眼前一亮
google·gemini
不凡的凡6 小时前
flutter 管理工具fvm
flutter·harmonyos