我最近对已批准的应用程序进行了更新。此版本添加了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是否批准了它?
答案 0 :(得分:4)
事实证明,这确实是一个Apple问题。我得到了苹果公司的回复,称在In App Purchase可用之前可能需要长达36个小时。
我想这会使处理
的情况变得非常重要- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}
调用,但是当response.products为空时。当您尝试获取实际产品时,请确保没有得到任何结果。
我希望Apple在IAP准备出售之前不会批准并发布应用更新。