离线时SKPaymentQueue获取SKPaymentTransactionStateFailed,商店中不再存在的产品

时间:2016-01-08 13:45:56

标签: in-app-purchase ios9

我已将应用内购买(IAP)添加到我的应用中。我已经遵循了有关为Sandbox设置测试用户和记录真实App Store帐户的所有指导原则。在测试时我正在购买和取消。设备在某一时刻与iTunes重新同步并显然已恢复并重新连接到生产商店。我没有注意到这一点,直到尝试购买没有产生正常的登录对话框,我取消了。从那时起,我一直在SKPaymentTransactionStateFailed进入:

- (void)paymentQueue :( SKPaymentQueue *)队列updatedTransactions:(NSArray *)交易

错误对象中的错误SKError表示: SKErrorPaymentCancelled ,这是真的,但也发生在几天前。

无论设备是否连接到互联网,我都会得到这个(即使wifi关闭)。它似乎缓存了交易在某个地方取消并被卡住的事实。没有什么可以清除,我试过包括:

  • 创建新测试用户并删除旧测试用户。
  • 删除应用并重新安装。
  • 删除生成此内容的测试产品。
  • 清理并重新构建项目,包括构建文件夹。
  • 重置设备和所有其他伏都教。

有什么想法在这里发生了什么?如何清除缓存的内容?看来我无需向商店承认这一事实。此外,我发现 非常奇怪 是我在启动时收到这些SKPaymentTransaction通知,即使设备处于离线状态也是如此?!

1 个答案:

答案 0 :(得分:0)

解决方案:App Store正在缓存设备上的内容,唯一的解决方案是重新安装iOS 9,而不是从以前的备份恢复。清理项目和构建文件夹没有帮助,也没有从设备或iTunes存储它的任何地方删除应用程序,然后重新安装生产应用程序。