Ios 应用内购买不起作用

Ios 应用内购买不起作用,ios,in-app-purchase,Ios,In App Purchase,我使用本教程在我的应用程序中创建购买 此代码有时有效,有时无效。我知道这听起来很有趣,但这是我的问题 例如:First start应用程序(所有项目下载并显示在表中,我可以购买其中任何项目),但在下一次(例如第二次启动)时,我在这一行上遇到错误: SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 错误是 由于未捕获异常“NSRangeException”索引0超出空数组的界限,

我使用本教程在我的应用程序中创建购买

此代码有时有效,有时无效。我知道这听起来很有趣,但这是我的问题

例如:First start应用程序(所有项目下载并显示在表中,我可以购买其中任何项目),但在下一次(例如第二次启动)时,我在这一行上遇到错误:

SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0]; 
错误是

由于未捕获异常“NSRangeException”索引0超出空数组的界限,正在终止应用程序


使用付款方式时使用此代码…如按下付款按钮

NSLog(@"Products - %@",[IAPClockDietHelper sharedHelper].products);

您发现,当您第一次启动应用程序时,您有产品阀…当您第二次使用应用程序时,产品有空值…因此您的应用程序崩溃…检查..

当您使用付款方式时使用此代码..如按下付款按钮

NSLog(@"Products - %@",[IAPClockDietHelper sharedHelper].products);

您发现,当您第一次启动应用程序时,您有产品阀…当您第二次使用应用程序时,产品有空值…因此您的应用程序崩溃…请检查..

如果您想避免此类崩溃,只需在处理产品之前设置一个条件,如下所示:

if ([[InAppRageIAPHelper sharedHelper].products count] >0)
{
   SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0];
   //product processing goes here
}
else
{
   NSLog (@"Warning: no products returned");
}

如果您想避免此类崩溃,只需在处理产品之前设置一个条件,如下所示:

if ([[InAppRageIAPHelper sharedHelper].products count] >0)
{
   SKProduct *product = [[InAppRageIAPHelper sharedHelper].products objectAtIndex:0];
   //product processing goes here
}
else
{
   NSLog (@"Warning: no products returned");
}

这个问题是我在为我的设备进行硬重置后解决的。

这个问题是我在为我的设备进行硬重置后解决的。

除了Vince的评论之外:请提供更多关于发生错误的信息,并描述您到目前为止尝试了什么,以至于没有人将时间浪费在您已经尝试过的事情上。中的消息“未购买:com.company.sb.pack5”(但此消息不时显示)@MatrosovAlexander您应该编辑您的问题,以包含该细节,而不是将其放在评论中,以免遗漏。我已经为您添加了它。感谢jrturton I立即编辑除了Vince的评论:请提供更多关于错误发生的见解,并描述您迄今为止尝试了什么,以便没有人在您已经做的事情上浪费时间“Not Purchase:com.company.sb.pack5”中的.Message@MatrosovAlexander您应该编辑您的问题以包含该详细信息,而不是将其放在可能遗漏的评论中。我已经为您添加了它。感谢jrturton I编辑nowNSLog(@“Products-%@,[IAPClockDietHelper sharedHelper].Products));现在-对于这个日志,我在NSArray产品中并没有得到任何项目。但为什么这并不总是崩溃?在某一点上,我得到了我的项目的完整数组,而在下一次,我的产品数组中并没有任何元素。请参阅此url我的方法-(void)productsRequest:(SKProductsRequest*)request DidReceiverResponse:(SKProductsResponse*)已执行响应,但我在响应中未获得任何值。请检查所有Conecpt NSLog(@“Products-%@,[IAPClockDietHelper sharedHelper].Products);现在-对于这个日志,我在NSArray产品中并没有得到任何项目。但为什么这并不总是崩溃?在某一点上,我得到了我的项目的完整数组,而在下一次,我的产品数组中并没有任何元素。请参阅此url我的方法-(void)productsRequest:(SKProductsRequest*)request DidReceiverResponse:(SKProductsResponse*)响应已执行,但我没有在响应中获得任何值。请检查所有Conecpt hello!是的,这是正确的检查,但为什么调用方法-(void)productsRequest:(SKProductsRequest*)request DidReceiverResponse:(SKProductsResponse*)后我没有产品回答?如果没有更多的背景,这很难说。也许如果你发布了一个委托方法和创建请求的方法的代码。在发布代码之前,请确保所有产品标识符都无法读取-使用FFFFFF或其他内容覆盖它们。另外,请务必查看本指南,它不应该花费你超过15分钟的时间:谢谢好的。是的,我的问题很常见。ray wenderlich的教程通常效果很好(它也很好,但有时)。我认为这是我的错误。谢谢参考!您好!是的,这是正确的检查,但为什么调用方法-(void)productsRequest:(SKProductsRequest*)请求后我并没有产品(SKProductsResponse*)回答?如果没有更多的背景,这很难说。也许如果你发布了一个委托方法和创建请求的方法的代码。在发布代码之前,请确保所有产品标识符都无法读取-使用FFFFFF或其他内容覆盖它们。另外,请务必查看本指南,它不应该花费你超过15分钟的时间:谢谢所有。是的,我的问题很常见。ray wenderlich的教程通常效果很好(而且效果也很好,但有时会)。我认为这是我的错误。谢谢参考!对我的设备进行硬重置后“设置->重置-->重置所有设置”是什么意思?对我的设备进行硬重置后“重置”是什么意思。“?设置->重置-->重置所有设置?