2012-02-06 124 views
0

我使用本教程http://www.raywenderlich.com/2797/introduction-to-in-app-purchases在我的应用程序中创建购买。在应用程序购买不工作

此代码不时工作或不工作。我知道这听起来很有趣,但这是我的问题。

例如:首先启动的应用程序(所有项目下载并表显示,我有可以购买任何的这一点),但在接下来的时间(例如秒开始),我得到一个错误在这条线:

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

该错误是

终止应用程序由于未捕获的异常 'NSRangeException' 索引0超出界限为空数组

+1

哪个代码?哪个错误? – 2012-02-06 10:33:54

+1

除了Vince的评论:请提供更多关于错误发生的更多信息,并且描述您迄今为止所尝试的内容,因此没有人会浪费自己的时间在您已经尝试过的方面。 – 2012-02-06 10:38:15

+0

“未购买:com.company.sb.pack5”中的消息(但此消息会不时显示) – 2012-02-06 10:49:02

回答

0

我的设备硬重置后解决此问题。

+0

“为我的设备硬重置后”是什么意思?设置 - >重置 - >重置所有设置? – Jacky 2013-07-21 11:26:28

1

使用此代码,当您使用的付款方式.....像付款按钮按下

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

你发现,当你启动应用程序第一次然后,您对我们的产品阀门......而当你使用应用程序第二次然后产品有NULL值....所以,你的应用程序崩溃了... ..检查

+0

NSLog(@“Products - %@”,[IAPClockDietHelper sharedHelper] .products);现在 - 对于这个日志我没有在NSArray产品中获得任何项目。但为什么这不总是崩溃? – 2012-02-06 10:57:42

+0

在某一时刻,我获得了我的物品的全部阵列,并且在下一次我的产品阵列中没有任何元素。 – 2012-02-06 10:59:19

+0

看到这个网址http://stackoverflow.com/questions/3324596/storekit-skroductsrequest-crash – Deepesh 2012-02-06 10:59:30

2

如果你想避免这种崩溃的只是把一个条件加工产品如在此之前:

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

你好!是的,这是正确的检查,但为什么我没有产品后调用方法 - (void)productsRequest:(SKProductsRequest *)请求didReceiveResponse:(SKProductsResponse *)响应? – 2012-02-06 15:21:49

+0

这很难说没有更多的背景。也许如果你发布委托方法的代码和创建请求的方法。在做之前一定要确保所有产品标识符都不可读 - 用FFFFFF或其他东西覆盖它们。另外请务必检查本指南,它不应超过15分钟:https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/StoreKitGuide/StoreKitGuide.pdf – 2012-02-07 09:07:56

+0

谢谢大家。是的,我的问题很常见。ray wenderlich的教程通常工作得很好(而且它也很棒,但时间久了)。我认为这是我的错误。感谢您的参考! – 2012-02-07 10:18:56