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 未正确绑定应用
相关推荐
踏雪羽翼14 小时前
android TextView实现文字字符不同方向显示
android·自定义view·textview方向·文字方向·textview文字显示方向·文字旋转·textview文字旋转
lxysbly14 小时前
安卓玩MRP冒泡游戏:模拟器下载与使用方法
android·游戏
夏沫琅琊17 小时前
Android 各类日志全面解析(含特点、分析方法、实战案例)
android
程序员JerrySUN17 小时前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构
2501_9462447818 小时前
Flutter & OpenHarmony OA系统设置页面组件开发指南
开发语言·javascript·flutter
TeleostNaCl18 小时前
Android | 启用 TextView 跑马灯效果的方法
android·经验分享·android runtime
TTGGGFF18 小时前
解决Gemini无法进入显示 “Google Al Studio 和 Gemini AP| 的可用区域” 的问题
ai·google·gemini3
TheNextByte119 小时前
Android USB文件传输无法使用?5种解决方法
android
quanyechacsdn20 小时前
Android Studio创建库文件用jitpack构建后使用implementation方式引用
android·ide·kotlin·android studio·implementation·android 库文件·使用jitpack
程序员陆业聪21 小时前
聊聊2026年Android开发会是什么样
android