我最近有一个应用的更新获得批准。此版本添加了应用内购买。该应用在沙盒模式下完美运行,Apple 确实批准了 IAP 和应用,但应用内购买在应用中失败。
我认为崩溃的发生是因为 response.products 来自:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}
返回一个空数组并且:
SKProduct *product = [[products filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"productIdentifier == %@", _model.packageId]] firstObject];
返回零。我无法获得 SKProduct 的价格。我认为实际的应用程序崩溃与这些行有关,因为产品和付款可能为零。
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];
我阅读了其他博文,说 IAP 最多可能需要 24 小时才能可用。这是真的?当我的应用程序在沙盒模式下运行并且 Apple 批准时,我是否需要担心与我的应用程序中的 IAP 有关的错误?
最佳答案
原来这确实是苹果的问题。我收到 Apple 的回复,称最多可能需要 36 小时才能使用 In App Purchases。
我想这使得处理情况变得非常重要
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
}
被调用,但是当 response.products 为空时。当您尝试获取实际产品时,请确保您不会得到零结果。
我希望 Apple 在 IAP 真正准备好销售之前不要批准和发布应用程序更新。
关于ios - -productRequest :didReceiveResponse returns empty products array in real store, 在沙盒中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23949810/