从App Store请求IAP产品时出错

时间:2013-08-15 15:07:27

标签: in-app-purchase ios7

在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}

问题出在哪里?

6 个答案:

答案 0 :(得分:58)

Apple阻止测试应用内购买......

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

请参阅:iOS模拟器部分

  

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

很伤心......

答案 1 :(得分:12)

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

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

我不确定是什么导致这种情况,但我的解决方案是下载iOS 6.1模拟器。 xcode首选项 - &gt;下载 - &gt;组件并选择iOS 6.1模拟器。

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

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

答案 2 :(得分:6)

更新:在模拟器中测试应用内购买似乎适用于Xcode 6测试版

答案 3 :(得分:2)

  1. 确认您已退出iTunes&amp; App Store(设置 - &gt; iTunes&amp; App Store - &gt;触摸Apple ID - &gt;退出)

  2. 返回您的应用,再次购买并使用测试用户帐户登录,因为开发版本可访问Sandbox商店而非生产商店。

答案 4 :(得分:1)

正如Arkady所说,随着XCode 5的GM发布,您无法在模拟器中测试应用内购买。但是,通过从iTunes和App Store退出(如Tafkadasoh提到),然后从XCode在设备上运行应用程序,我能够在运行iOS 7.0.2的iPad 2上测试应用程序内购买。当我进入应用内购买时,系统会提示我输入Apple ID,当我输入测试用户帐户信息(我在itunes connect中创建)时,我能够成功完成应用内购买沙箱模式。

答案 5 :(得分:0)

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

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

PPS也许我们都应该开始文件错误报告。