React Native(Expo)集成react-native-purchases报错:There was a problem with the store
问题描述
基于Expo React Native(0.72.4)开发应用,集成react-native-purchases(^6.6.4)调用RevenueCat的Purchases.getOfferings()时,抛出错误:[Error: There was a problem with the store.],已确认Android API Key配置正确。
调用代码如下:
try { Purchases.setLogLevel(Purchases.LOG_LEVEL.DEBUG); if (Platform.OS === "ios") { } else if (Platform.OS === "android") { Purchases.configure({ apiKey: "goog_api-key" }); } try { const offerings = await Purchases.getOfferings(); console.log(offerings); } catch (e) { console.log(e); } } catch (e) { console.log(e); }
排查与解决建议
- 检查Google Play Billing权限:确保Expo项目配置了
com.android.vending.BILLING权限。Managed workflow需在app.json的android.permissions数组中添加该权限;Bare workflow则要在AndroidManifest.xml中手动声明。 - 验证产品与Offerings配置:登录RevenueCat后台,确认Android平台的产品SKU已正确关联到Offerings,且产品状态为活跃。同时检查Google Play Console中对应产品已创建并发布(至少处于可测试状态)。
- 确认测试账号与环境:
- 使用Google Play授权的测试账号,普通账号无法访问未发布的内购产品。
- 真机测试时,确保设备登录测试账号,且未安装过该应用的非测试版本。
- 分析DEBUG日志:已开启DEBUG级别日志,仔细查看控制台输出的RevenueCat详细日志,尤其是
getOfferings()调用前后的请求/响应内容,日志通常会包含具体错误原因(如产品未找到、权限不足等)。 - 检查网络连接:确保测试设备网络正常,RevenueCat需要连接自身服务器和Google Play Billing服务,网络波动或代理可能导致请求失败。
- 验证版本兼容性:确认
react-native-purchases(6.6.4)与Expo 0.72.4的兼容性,可尝试升级到该包的最新兼容版本,或回退到稳定版本测试。 - 调整配置时机:将
Purchases.configure()移到应用启动初期执行(比如组件的useEffect无依赖项中),确保初始化完成后再调用getOfferings()。
内容的提问来源于stack exchange,提问作者Behonder
相关产品推荐
相关产品推荐

