在iOS模拟器中恢复iOS应用内购买时出现“无法连接到iTunes商店”的错误。

25
我查看了许多与iOS StoreKit“无法连接到iTunes商店”问题相关的现有问题,但我认为我的情况没有被涵盖:在iOS模拟器中运行后,恢复之前购买的应用内购买时出现“无法连接到iTunes商店”的错误。如果我点击取消,弹出框就会消失,并且恢复成功。只有恢复时才会出现问题,购买应用内购买时没有任何问题。而且,这个问题只发生在模拟器上,而不是在真正的iPhone上测试时。我很确定一切都没问题,只是想确认这只是一个模拟器的bug。还有其他人遇到过这个问题吗?
6个回答

33

我已经尽可能地研究了这个问题,并确认在设备上运行时没有问题,无论是在沙盒模式下还是(自从昨天苹果批准了IAP后)使用真实的Apple ID,我认为这是一个模拟器bug,可以忽略。

iLive在下面发布并在其他地方重复的answer相反,测试IAP在模拟器上 被苹果明确支持的,除了托管内容下载。

更新: 看起来自iOS 7以来,在模拟器上测试IAP不再得到适当的支持。我已经使用非64位模拟器使其正常工作,但是在64位iPhone模拟器上却不能。如pix下面的评论所述,苹果似乎也已经从他们的文档中删除了iOS模拟器测试的提及。


奇怪的是,我只能在苹果网站上找到确认IAP测试在iOS模拟器上受支持的地方,就在OSX版本的IAP编程指南的“测试商店”部分中。目前的iOS版IAP编程指南没有相应的页面 ;) - pix
@pix 是的,看起来是这样。我已经更新了我的答案以反映这一点。 - mluisbrown
4
模拟器中无法使用StoreKit(应用内购买)。 - DShah

7

我不相信你能在模拟器中测试购买。

来自“应用内购买编程指南”:

Store Kit 在 iOS 模拟器中无法运行。当您在 iOS 模拟器中运行应用程序时,如果应用程序尝试检索付款队列,则 Store Kit 会记录警告。必须在实际设备上测试商店。

如果您查看此链接,苹果会告诉您应该做什么: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/DevelopingwithStoreKit/DevelopingwithStoreKit.html

您还可以查看此链接:为应用内购买错误恢复按钮

希望这有所帮助!


从您发布的链接中可以看到:“注意:Store Kit 可以在 iOS 模拟器中进行测试,但不包括托管内容下载。”这与您发布的内容直接相矛盾。我没有进行托管内容下载,所以应该可以正常工作。 - mluisbrown
1
这曾经是正确的,但现在苹果允许模拟器内进行商店交易。 - Tod Cunningham
在Xcode 5.1.1中,我确实可以使用iOS 6.1模拟器测试应用内购买。但是在iOS 7.1模拟器中,购买交易会导致错误代码0。 - Basil Bourque

3
我遇到了同样的问题。当我想连接到iTunes商店时,会弹出“无法连接到iTunes商店”的提示。如果你选择重试,则会跳转至登录页面。不过,如果你选择取消,系统会返回“恢复购买成功”的提示。这个问题似乎只出现在模拟器中。 Cannot connect to iTunes Store Restore Purchases Successful


1

请确保您使用的账户是沙盒用户。我曾试图在沙盒环境中使用我的个人iCloud账户,但却因为同样的错误被拒绝了。


0
最近(从版本8开始)的Xcode发布中,我认为模拟器中StoreKit的状态是“部分实现”。
苹果公司官方表示需要在设备上进行测试,但是在模拟器中似乎支持一些调用 - 至少SKProductRequest总是无误地工作。完成购买可能会起作用,也可能不会。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接