You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

沙盒环境自动续期订阅弹出旧版内购对话框的咨询

沙盒环境下自动续期订阅显示旧版对话框的问题解答

嘿,我之前在测试iOS 11的订阅功能时也碰到过一模一样的情况,给你梳理下关键点:

1. 沙盒里显示旧版对话框是正常的吗?

答案是肯定的。在iOS 11.2.6这类早期iOS 11版本的沙盒环境中,自动续期订阅的对话框确实经常会呈现旧版样式——哪怕你的代码完全按照WWDC 2017 Session 305里的新API来实现。这是苹果沙盒服务器在当时版本的兼容性问题,不是你的代码有bug。

2. 能不能让沙盒弹出新版对话框?

可以尝试这几个办法:

  • 升级测试设备的iOS版本:苹果在iOS 11.3及后续的小版本里修复了沙盒UI同步的问题,把设备升级到这些版本后,沙盒里大概率会显示iOS 11引入的新版紧凑式订阅对话框(带清晰的周期和价格明细)。
  • 检查代码适配细节:确保你没有在代码里保留旧版StoreKit的兼容逻辑,比如创建SKPayment时直接用SKPayment(product: product),而不是用旧的初始化方式。另外,确认SKProductsRequest返回的产品信息里,subscriptionPeriodpriceLocale这些字段都正确获取到了——这些是新版对话框显示的基础数据。
  • 用TestFlight环境测试:如果升级iOS有困难,你可以打包上传到TestFlight,用TestFlight的测试环境验证。TestFlight的环境更贴近生产环境,订阅对话框的UI会和正式上线后的一致,而且同样可以用沙盒账号测试。

3. 额外提醒

你看的WWDC 2017 Session 305里的新版对话框是针对生产环境的,沙盒在iOS 11.2.6这个版本确实存在UI不一致的情况,不用过度焦虑。只要你的订阅功能逻辑正常(比如自动续期、状态回调、收据验证都没问题),正式上线后,iOS 11及以上的设备都会显示新版对话框的。

内容的提问来源于stack exchange,提问作者Alex

火山引擎 最新活动