首页 > 解决方案 > Xcode 10.1 - 模拟器崩溃尝试在横向 iPhone 8 Plus、iPhone XR 和 iPhone XS Max 中呈现 SKStoreProductViewController

问题描述

以下代码在 iPhone 5S、iPhone 8、iPhone X 和 iPhone XS 以及所有 iPad 上的模拟器中加载。

该代码还加载到物理 8 Plus 设备上。

代码在 iPhone XR、XS Max 和 8 Plus 的模拟器中崩溃。

除了这些模拟器大小的崩溃之外,还会出现此错误消息:“ [Snapshotting] Snapshotting a view (0x615000095e00, UIView) that has not been rendered at least once requires afterScreenUpdates:YES.

这是代码:

let storeViewController:SKStoreProductViewController = SKStoreProductViewController();
storeViewController.modalPresentationStyle = .pageSheet
storeViewController.delegate = self;

self.present(storeViewController, animated: true, completion: nil);

var productparameters = [String : String]()

productparameters = [SKStoreProductParameterITunesItemIdentifier:appID, SKStoreProductParameterAffiliateToken:"123abc", SKStoreProductParameterProviderToken:"123456", SKStoreProductParameterCampaignToken:campaignName];

storeViewController.loadProduct(withParameters: productparameters, completionBlock: { (success: Bool, error: Error?) -> Void in
            })

崩溃后我偶尔也会收到此错误消息:

在此处输入图像描述

任何帮助将不胜感激!我已经在两台不同的 Mac 上尝试过,在重新启动 Xcode 并清理构建文件夹后,它在模拟器中的 XR、XS Max 和 Plus 设备上始终崩溃。

标签: iosiphoneswiftxcodestorekit

解决方案


由于模拟器没有 App Store,所以模拟器上没有 StoreKit。它需要一个物理设备。

当然,它应该不会崩溃。但这听起来像是苹果代码的一个错误。可能最好直接向他们报告。

在实际的物理设备上运行应该可以工作!


推荐阅读