关于RevenueCat Promotionals功能在Sandbox环境中权益授予异常的咨询
关于RevenueCat Promotionals Sandbox测试的问题解答
1. 这个现象是预期行为吗?
其实这里有个容易踩的混淆点:RevenueCat的Promotional Entitlements里,权益模板本身是全局的(跨Sandbox和生产),但给用户的授予操作是严格区分环境的。你遇到的“授予后权益出现在生产界面”的情况,大概率不是预期行为,可能是操作时的小疏忽——比如你以为开了「Viewing sandbox data」开关,但实际在授予流程中不小心切回了生产视图,或者控制台的视图切换逻辑让你误以为是在Sandbox环境下操作。
正常来说,当你在Sandbox视图打开用户的Customer Profile并授予权益,这个授予记录只会关联该用户的Sandbox身份,生产视图下的同App User Id用户是看不到这条记录的。如果确实出现了跨环境同步的情况,建议你再仔细核对操作时的视图状态,或者尝试用全新的Sandbox测试用户重复操作看看。
2. 测试Promotionals功能的推荐方案
我自己测试这个功能时,是按下面的流程来的,能确保完全在Sandbox环境验证:
- 操作前务必确认控制台的「Viewing sandbox data」开关是激活状态,别嫌麻烦,多检查一遍。
- 用仅在Sandbox环境生成的测试用户——要么在你的App里用Google Play测试账号登录(Sandbox模式)生成新的App User Id,要么在控制台手动创建Sandbox专属用户,避免和生产用户混淆。
- 验证的时候别只看控制台,一定要在App的Sandbox模式下调用RevenueCat的权益查询API,确认Promotional权益是否正确生效——控制台的视图有时候可能因为缓存或者环境切换显示不准,App端的实际状态才是最准确的。
- 测试过期、撤销这类逻辑时,同样在Sandbox视图下操作,然后在App里刷新权益状态,确保流程符合预期。
关于你猜测的“是否仅在生产环境分配即可”
你的思路有道理,但不完全对。虽然Promotionals不会触发应用商店计费,但Sandbox和生产的用户身份是完全隔离的——哪怕是同一个App User Id,Sandbox环境的用户和生产环境的用户在RevenueCat里是两个独立的实体。如果直接在生产环境分配,只有正式用户能拿到权益,你的Beta测试用户(用Sandbox账号)是看不到的。
所以如果是给Beta用户做测试,还是得在Sandbox环境单独操作,这样测试用户才能在Sandbox模式下获取到权益。等正式上线后,再在生产视图给正式用户分配就好。
内容的提问来源于stack exchange,提问作者GrahamD

