我的应用内购买非常完美,但如果我的 iPhone 没有连接 Wi-Fi 并且使用信号缓慢或没有信号的蜂窝连接,我会收到以下消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid product identifier: (null)'
我应该在启用购买按钮之前检查互联网连接吗?我希望有更简单的方法。我只需要从
StoreKit.
中捕获任何连接错误更新
对于我的应用内购买代码,我使用了一些修改 this guide from raywenderlich.com.您也可以下载the test project.
我的应用程序适用于 iOS 8 和 7,而本教程适用于 iOS 6。也许这是一个问题。
我只添加了
(void)paymentQueue:(SKPaymentQueue *)queue
restoreCompletedTransactionsFailedWithError:(NSError *)error
用于在恢复应用程序和 SKPaymentTransactionStateDeferred
时捕获错误案子。
最佳答案
释放 didFailWithError
中的委托(delegate)防止崩溃的方法:
- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
{
NSLog(@"Failed to load list of products.");
_productsRequest = nil;
_completionHandler(NO, nil);
_completionHandler = nil;
request.delegate = nil; // Release the delegate
}
关于ios - 应用程序内购买崩溃的应用程序没有互联网连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434247/