在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}
问题出在哪里?
答案 0 :(得分:58)
Apple阻止测试应用内购买......
请参阅: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)
确认您已退出iTunes&amp; App Store(设置 - &gt; iTunes&amp; App Store - &gt;触摸Apple ID - &gt;退出)
返回您的应用,再次购买并使用测试用户帐户登录,因为开发版本可访问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也许我们都应该开始文件错误报告。