关于 revenuecat-entitlements-gate
面向跨平台应用开发者的 RevenueCat 权益门控指南,涵盖一次性检查与状态监听,并按项目文件识别目标平台。
主要功能
- 01识别 React Native、Flutter、KMP、Android 和 iOS
- 02检查当前有效权益
- 03监听权益状态变化
- 04说明权益标识符与商品 ID 的区别
- 05验证门控和界面更新
适用场景
- 01根据有效权益显示或隐藏功能
- 02权益变化后更新界面
- 03排查权益标识符或监听配置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ revenuecat/ ai-toolkit --skill revenuecat-entitlements-gate安装后在 Claude Code 中输入/revenuecat-entitlements-gate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
platforms/android.mdflutter.mdios.mdkmp.mdreact-native.md详细介绍
revenuecat-entitlements-gate:检查 RevenueCat 权益
当用户想根据 RevenueCat 权益是否处于激活状态来决定显示或隐藏某项功能时,使用此技能。此技能涵盖单次检查和响应式监听器;不涵盖购买流程(参见 revenuecat-purchase-flow)或身份验证(参见 revenuecat-identify-user)。
1. 检测平台
检查工作目录,并按从上到下的顺序选择第一个匹配项:
- React Native:
package.json中包含react-native-purchases条目,或将react-native作为依赖项 → 阅读platforms/react-native.md。如果expo也是依赖项,请注明这是 Expo 项目。 - Flutter:项目根目录下存在
pubspec.yaml→ 阅读platforms/flutter.md。 - Kotlin Multiplatform:
build.gradle.kts包含kotlin { … }多平台源集代码块,或依赖com.revenuecat.purchases:purchases-kmp*→ 阅读platforms/kmp.md。 - Android(原生):
build.gradle(.kts)应用了com.android.application(且不是 KMP)→ 阅读platforms/android.md。 - iOS(原生):项目根目录下存在
Package.swift、*.xcodeproj、*.xcworkspace或Podfile→ 阅读platforms/ios.md。
如果有多个匹配项(例如,Flutter 项目中包含 ios/ 文件夹),请选择最外层的项目,即拥有构建流程的项目。如果仍有歧义,请询问用户要配置哪个平台。
2. 共用概念(所有平台)
- 检查权益标识符,而非产品 ID。 标识符(例如
"premium")在 RevenueCat 控制面板中配置,并映射到一个或多个产品。使用权益可让你更改产品、价格和商店,而无需修改应用代码。 customerInfo.entitlements.active是唯一可信的数据来源。 它是一个以权益标识符为键的Map<String, EntitlementInfo>。权益出现在active中,表示用户当前拥有访问权限。若未出现,则表示用户没有访问权限,不论其过去是否购买过。- 不要依据购买历史进行门控。 已过期的订阅仍会出现在
customerInfo.entitlements.all中,但会从active中移除。只使用active。 - 先获取一次,再订阅。 首次调用
customerInfo会快速返回缓存值,SDK 会在后台刷新。每个 SDK 都提供一个在权益发生变化时触发的监听器或流(例如购买、恢复、续订或过期后)。请订阅它,而不要轮询。 - 必须先配置 SDK。 如果尚未运行
Purchases.configure(…),权益调用将会失败。使用此技能前,请通过integrate-revenuecat设置 SDK。
3. 实现
阅读与检测结果匹配的平台文件:
platforms/ios.mdplatforms/android.mdplatforms/kmp.mdplatforms/flutter.mdplatforms/react-native.md
每个平台文件都会展示单次检查、响应式订阅,以及在典型应用中的放置位置。
4. 验证
在满足以下条件前,不要声称门控功能正常:
- 拥有激活权益的用户可以看到受门控的功能,而没有该权益的用户看不到。
- 权益状态发生变化时(使用沙盒购买或在控制面板中手动授予权益进行测试),UI 无需手动重启即可更新,这表明监听器已正确连接。
- 代码中的权益标识符与 RevenueCat 控制面板中现有的标识符一致。这里的拼写错误会导致所有用户都被静默拒绝访问。
评论
支持 Markdown