-productRequest:didReceiveResponse在实体店中返回空产品数组,在沙箱中工作

时间:2014-05-30 08:04:00

标签: ios objective-c in-app-purchase app-store

我最近对已批准的应用程序进行了更新。此版本添加了In app购买。应用在沙盒模式下运行良好 Apple同时批准了IAP和应用,但应用内购买功能在应用中失败。

我认为发生崩溃的原因是来自:

的response.products
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}

返回一个空数组,并且:

SKProduct *product = [[products filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"productIdentifier == %@", _model.packageId]] firstObject];

返回nil。我无法得到SKProduct的价格。我认为实际的应用程序崩溃是由于这些行,因为产品和付款可能是零。

SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];

我在其他博客文章中看到,在IAP可用之前最多可能需要24小时。这是真的?我是否需要担心我的应用程序中的IAP在沙盒模式下运行时的错误以及Apple是否批准了它?

1 个答案:

答案 0 :(得分:4)

事实证明,这确实是一个Apple问题。我得到了苹果公司的回复,称在In App Purchase可用之前可能需要长达36个小时。

我想这会使处理

的情况变得非常重要
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}
调用

,但是当response.products为空时。当您尝试获取实际产品时,请确保没有得到任何结果。

我希望Apple在IAP准备出售之前不会批准并发布应用更新。