SuperAPI AI 工具集

revenuecat-entitlements-gate

编程与开发

查看项目

更新于 10-16 07:58

技能介绍

用途:当需要根据 RevenueCat 的活跃权益(entitlement)决定是否展示某个付费功能时使用本技能。它覆盖一次性查询与响应式监听两种情况,不覆盖购买流程(见 revenuecat-purchase-flow)和鉴权(见 revenuecat-identify-user)。

平台识别:查看工作目录并按顺序取第一个匹配项——React Native(package.json 含 react-native-purchases 或 react-native 依赖)读 platforms/react-native.md;Flutter(项目根有 pubspec.yaml)读 platforms/flutter.md;Kotlin Multiplatform(build.gradle.kts 含 kotlin multiplatform 源集或依赖 com.revenuecat.purchases:purchases-kmp*)读 platforms/kmp.md;原生 Android(应用 com.android.application 且非 KMP)读 platforms/android.md;原生 iOS(根目录有 Package.swift、.xcodeproj、.xcworkspace 或 Podfile)读 platforms/ios.md。多个匹配时选最外层、拥有构建的项目;仍不明确则询问用户。

通用概念:应检查权益标识符而非产品 ID,标识符(如 "premium")在 RevenueCat 后台配置并映射到一个或多个产品,便于更换产品、价格与商店而不用改代码。customerInfo.entitlements.active 是判断依据,它是按权益标识符索引的 Map<String, EntitlementInfo>;出现在 active 中表示当前有访问权,缺失则没有,与过去是否购买无关。不要按购买历史判断,过期订阅仍在 all 中但会从 active 移除。先查询一次再订阅:首次调用返回缓存值并后台刷新,各 SDK 都提供监听器或流在权益变化(购买、恢复、续订、过期)时触发,应订阅而非轮询。使用前必须先通过 integrate-revenuecat 配置 SDK,否则权益调用会失败。

验证:确认有活跃权益的用户能看到该功能、没有的用户看不到;权益状态变化(用沙箱购买或后台手动授予测试)时 UI 无需重启即更新;代码中的权益标识符与后台存在的标识符一致,拼写错误会导致所有人被拦截。各平台文件给出一次性检查、响应式订阅及在应用中的放置位置。