RevenueCat集成后无报错返回empty Offerings的问题咨询
RevenueCat 集成 Google Play 返回空 Offerings 排查方案
已完成校验项(无需重复排查)
- 已上传声明
com.android.vending.BILLING权限的应用包至Google Play封闭测试轨道,完成测试轨道创建、测试人员添加全流程配置 - 已逐字符核对订阅商品Product ID,与RevenueCat后台配置的商品ID完全一致
- 已确认Google Play Console内订阅商品价格配置、相关账号权限配置正常
- 已多次重建Service Account,尝试过所有公开可查的同类问题解决方案,集成全程无报错,但接口始终返回空Offerings
- 现有公开教程(含YouTube平台相关实现教程)存在内容跳步问题,参考价值不足
高优先级遗漏配置排查点
1. Offering 配置匹配校验
- 确认RevenueCat后台至少存在1个标记为*Current(当前生效)*的Offering,未标记为当前版本的Offering无法通过默认拉取接口获取
- 若SDK端调用时传入了自定义Offering identifier,需逐字符核对标识拼写、大小写,标识匹配无自动容错机制,大小写不一致、存在多余空格都会导致拉取失败
- 若未配置自定义Offering,SDK调用获取Offerings接口时不要硬编码传入identifier参数,使用默认无参方法即可
2. Service Account 权限链路校验
- 不要仅在Google Cloud后台给Service Account分配权限,必须进入Google Play Console的「API访问」页面,将对应Service Account绑定到目标应用,授予查看应用信息、管理商店内商品、查看订单三类权限,仅配置Cloud侧权限不生效
- 确认上传到RevenueCat后台的Service Account JSON密钥为最新版本,密钥重置、权限变更后需要重新上传新密钥,配置生效最长等待24小时
- 确认Service Account未开启域限制、IP白名单类安全策略,此类策略会拦截RevenueCat服务端的商品拉取请求
3. Google Play 商品状态校验
- 确认所有关联到Offering的订阅商品状态为已激活,草稿、已停用状态的商品不会被RevenueCat同步
- 新建/修改商品配置后,需要在RevenueCat后台对应Google Play商店配置页手动触发一次商品同步,同步完成前接口无法拉取到对应商品
- 确认测试使用的Google账号已通过封闭测试邀请链接完成资格确认,仅被加入测试人员列表但未确认邀请的账号不具备测试资格,无法拉取商品
4. SDK 端配置校验
- 确认SDK初始化时传入的API Key为Google Play平台对应应用的专属Key,误用iOS平台Key、其他应用Key、沙箱/生产环境不匹配的Key都会导致拉取为空
- 测试设备上安装的安装包必须和上传到封闭测试轨道的包包名、签名完全一致,debug签名包、重签名包无法正常走Google Play结算链路
- 初始化SDK时不要将
observerMode参数手动设置为true,观察者模式下SDK不会主动拉取商品配置 - 获取Offerings的接口调用需要放在SDK初始化完成回调之后执行,初始化未完成时调用接口会返回空结果且不抛出错误
5. 环境一致性校验
- 若使用RevenueCat沙箱环境,确认Google Play侧订阅商品已配置沙箱可用定价,未配置沙箱价格的商品在沙箱环境下不会返回
- 测试设备上的Google Play商店需为最新正式版本,修改版Google Play、Beta版Google Play存在接口兼容问题,会导致拉取失败
- 测试时保持设备公网连接正常,部分网络环境会拦截Google Play结算服务请求,可尝试切换移动数据排查
内容的提问来源于stack exchange,提问作者nerdy kid
相关产品推荐
相关产品推荐

