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 未正确绑定应用
相关推荐
2501_9159214320 小时前
iOS App 电耗管理 通过系统电池记录、Xcode Instruments 与克魔(KeyMob)组合使用
android·ios·小程序·https·uni-app·iphone·webview
June bug1 天前
【配环境】安卓项目开发环境
android
夜雨声烦丿1 天前
Flutter 框架跨平台鸿蒙开发 - 思维导图开发教程
flutter·华为·harmonyos
2501_944526421 天前
Flutter for OpenHarmony 万能游戏库App实战 - 蜘蛛纸牌游戏实现
android·java·python·flutter·游戏
IT陈图图1 天前
基于 Flutter × OpenHarmony 开发的文本处理工具箱首页
flutter·华为·openharmony
小白阿龙1 天前
鸿蒙+Flutter 跨平台开发——一款“随机宝盒“的开发流程
flutter·华为·harmonyos·鸿蒙
csj501 天前
安卓基础之《(18)—内容提供者(4)在应用之间共享文件》
android
尤老师FPGA1 天前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第四十五讲)
android·java·ui
爱吃大芒果1 天前
Flutter for OpenHarmony前置知识:Dart 语法核心知识点总结(下)
开发语言·flutter·dart
小蜜蜂嗡嗡1 天前
【flutter better_player_plus实现普通播放器功能】
flutter