ios - 应用程序内购买崩溃的应用程序没有互联网连接

标签 ios in-app-purchase storekit

我的应用内购买非常完美,但如果我的 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/

相关文章:

ios - 如何使用 Web 服务器同步/验证应用内重复订阅(跨平台订阅)

ios - 修复 Swift Playground 中的低 FPS

ios - 使用 GLKit 加载立方体贴图后,iOS 上 openGL ES 2.0 的正确立方体贴图坐标是多少?

javascript - 可以检测到选择元素的 native UI 覆盖吗?

ruby-on-rails - 如何从 Rails 应用程序调用 Apple App Store 服务器?

ios - 应用内购买提示在应用启动时登录

ios - 每当输入文本时应用程序崩溃,无法识别的选择器发送到实例

ios - 应用内购买返回 0 产品和产品标识符作为无效产品标识符

in-app-purchase - 消耗品的 IAP 收据验证

swift - Store Swift v3 中产品的延迟加载