我已尝试在过去7天内进行应用内购买。我已经按照Ray Wenderlich's blog的步骤操作了。我已经对示例代码进行了所有必要的更改。尽管我在iTunes商店中有2种产品用于特定的捆绑软件ID,但它们都没有显示在屏幕上或控制台窗口中。它返回任何空的NSArray。我还检查了该博客的“没有工作”部分。没在ray的博客中工作过。

“没有用吗?如果这对您没有用,则有很多事情需要检查(此列表由论坛上的itme.manish和abgtan提供:


转到“设置\ iTunes&App Store”,注销任何帐户,然后重试,以确保您使用的是沙盒帐户。
检查此链接-如果它没有响应,则表明iTunes沙箱可能已关闭。
您是否为应用程序ID启用了应用内购买功能?
您项目的.plist捆绑包ID是否与您的应用程序ID相匹配?
进行SKProductRequest时是否使用完整的产品ID?
将产品添加到iTunes Connect之后,您是否已经等待了几个小时?
您的银行详细信息在iTunes Connect上是否处于活动状态?
您是否尝试过从设备中删除该应用并重新安装?
尝试了所有这些,仍然卡住了吗?尝试使用旧版论坛主题或该主题的评论,以便与其他读者进行讨论。”-来自raywenderlich的博客。


输出未更改。

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response


始终为空的数组将返回此方法的response.products。

我也经历了troybrant's blog并实现了它。我发现从iTunes商店获取产品详细信息时发生错误。

我也浏览了苹果开发者网站的链接。

如果有人有任何解决方案或建议,请分享。

最佳答案

您是否尝试过记录invalidProductIdentifiers?

for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
    NSLog(@"Invalid product id: %@" , invalidProductId);
}


我遇到了同样的问题-服务器返回了无效的产品ID,但奇怪的是,仅对于沙箱中的某些应用而言。有趣的是,同一应用程序的生产版本(具有相同的应用程序内购买)可以完美地工作。我的假设是,某些用于沙箱的Apple CDN无法正常工作,我们应该向Apple的错误报告者提交报告。

10-07 11:59
查看更多