用途:为 Expo 移动应用接入 RevenueCat,统一处理 iOS 与 Android 的内购和订阅。移动应用中的数字商品无法使用 Stripe 或 Polar.sh,Apple 和 Google 要求使用各自的原生计费系统,RevenueCat 将两者封装为一套 API。
安装:npx expo install react-native-purchases。需要开发构建,不能使用 Expo Go;开发环境下 SDK 进入模拟模式。
配置步骤:一、在 app.revenuecat.com 创建账户与项目。二、iOS 端在 App Store Connect 创建订阅商品并生成共享密钥,将其加入 RevenueCat 后台。三、Android 端在 Google Play Console 创建订阅商品,获取服务账号 JSON 密钥并加入 RevenueCat 后台。四、在应用根组件或入口文件中调用 Purchases.configure,并按平台传入对应 apiKey(iOS 为 appl_ 开头,Android 为 goog_ 开头)。
主要能力:通过 Purchases.getOfferings() 获取当前套餐与可用包,展示商品标题、价格字符串与描述;通过 Purchases.purchasePackage() 发起购买,并根据 customerInfo.entitlements.active['premium'] 判断是否解锁;通过 Purchases.getCustomerInfo() 检查权益;通过 Purchases.restorePurchases() 恢复购买(App Store 指南要求)。
Firebase 同步:在 Firebase Console 的 Extensions 中安装 RevenueCat In-App Purchases & Subscriptions 扩展,购买数据会自动写入 Firestore 的 customers/{userId},可读取 activeEntitlements 判断订阅是否有效。
沙盒测试:iOS 在 App Store Connect 创建沙盒测试账号,设备上退出原账号后登录,订阅每 3-5 分钟自动续期;Android 在 Google Play Console 的许可测试中添加测试邮箱并上传到内部测试轨道。RevenueCat 后台会以 Sandbox 徽章标记沙盒购买,建议测试订阅、续期、取消、过期完整流程。
付费墙模式:加载 offerings 后渲染可用包列表,点击触发购买,并提供恢复购买入口。
定价:月追踪收入 2500 美元以内免费,超出部分收取 1% MTR。
限制:需开发构建;资料未提供 Expo Go 兼容方案、具体商品定价建议及其他平台支持说明。