我现在正在测试我的应用内的应用内购买。当用户购买1个月的订阅(在沙盒中持续3分钟),然后在3分钟之后,如果我打开并积极使用应用程序,我的应用程序将锁定高级功能,我遇到了一个问题。我通过检索订阅的到期日期并将其与现在进行比较来决定是否应解锁高级功能。如果我重新启动应用程序,则不会发生这种情况,因为StoreKit随后在 didFinishLaunchingWithOptions 中完成了待续订交易。是的,每次通过getter访问isPremium变量时,它都会检查到期日期。待完成交易后,我是否应该在 didFinishLaunchingWithOptions 中确定一次高级状态?
但是如果长时间没有从内存中“卸载”应用程序怎么办?然后,除非应用程序重新启动,否则isPremium将为true。
也许我可以将StoreKit的完整交易放入 applicationDidBecomeActive 中?尽管他们在每条指南中都说应该在 didFinishLaunchingWithOptions 中。还是我的应用内购买设计存在另一个缺陷?谢谢。