36

在 IOS6 中,我成功地在我的应用中进行了应用内购买。

我下载了 IOS/ 和 Xcode 5 Beta 并尝试打开同一个项目。

我从应用商店获取产品的代码是:

- (void)requestProductsWithIdentifiers:(NSSet*)identifiers
{
        @synchronized(self)
    {
            DebugLog(@"requesting products with identifiers: %@", identifiers);

            self.productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:identifiers] ;
            self.productsRequest.delegate = self;
            [self.productsRequest start];
    }
}

但它返回一个错误:

[IAPHelper request:didFailWithError:](114): request did fail with error: <SKProductsRequest: 0xb846a10> / Error Domain=SSErrorDomain Code=2 "Cannot connect to iTunes Store" UserInfo=0xb846b10 {NSLocalizedDescription=Cannot connect to iTunes Store}

问题可能出在哪里?

4

6 回答 6

58

苹果阻止测试应用内购买...

这是发布说明的链接 https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html#//apple_ref/doc/uid/TP40001051-CH1-SW578

请参阅:iOS 模拟器部分

StoreKit(应用内购买)在模拟器中不起作用。13962338

好难过...

于 2013-09-20T17:02:26.277 回答
12

我最近在安装 xcode 5 和 iOS 7 模拟器后遇到了同样的问题。

以前 SKProductRequests 在模拟器中工作,但现在它们失败并出现错误代码 2。(它们仍然在设备上工作)。

我不确定是什么原因造成的,但我的解决方案是下载 iOS 6.1 模拟器。xcode Preferences->Downloads->Components 并选择 iOS 6.1 模拟器。

之后我必须选择 iOS 6.1 模拟器作为我的设备目标,从模拟器中删除应用程序,然后再次编译并运行它。现在 SKProductRequests 按预期返回了产品信息。

我尝试切换回 iOS 7 模拟器,但 SKProductRequests 再次开始失败。

于 2013-09-25T20:58:20.217 回答
6

更新:在模拟器中测试应用内购买似乎在 Xcode 6 beta 中有效

于 2014-06-08T01:35:48.720 回答
2
  1. 确认您已从 iTunes 和 App Store 退出(设置 -> iTunes 和 App Store -> 触摸 Apple ID -> 退出)

  2. 返回您的应用程序,再次购买并使用测试用户帐户登录,因为开发版本访问沙盒商店而不是生产商店。

于 2013-08-16T10:41:12.037 回答
1

正如 Arkady 所说,随着 XCode 5 的 GM 版本,您无法在模拟器中测试应用程序购买。但是,我能够在运行 iOS 7.0.2 的 iPad 2 上测试应用内购买,方法是从 iTunes 和 App Store 注销(如 Tafkadasoh 所述),然后从 XCode 在设备上运行应用程序。当我进入应用内购买时,系统提示我输入 Apple ID,当我输入测试用户帐户信息(我在 iTunes Connect 中创建的)时,我能够成功运行应用内购买沙盒模式。

于 2013-10-03T01:48:20.170 回答
0

发行说明没有说他们已经阻止了应用内购买,文本指出存在一个已知错误“StoreKit(应用内购买)将无法在模拟器中运行。13962338”,如果我没有正确阅读的话。大概 13962338 是错误编号。请注意,如果是政治家发表的声明,我可能会同意你的观点:-)

PS 由于他们已经删除了 iTunes 设置,因此进行应用内购买确实有点棘手。

PPS 也许我们都应该开始提交错误报告。

于 2014-01-29T19:47:25.670 回答