xcode - SKProductsRequest 在 UI 测试和 SKTestSession 中的 Xcode 12 GM 中失败

标签 xcode storekit ios14 xcode12

当我跑 SKProductsRequest在 Xcode 12 GM 中的 UI 测试 session 中,它总是失败并显示以下错误:

Error Domain=SKErrorDomain Code=0 "UNKNOWN_ERROR" UserInfo={NSLocalizedDescription=UNKNOWN_ERROR, NSUnderlyingError=0x600003d30f30 {Error Domain=ASDErrorDomain Code=507 "Error decoding object" UserInfo={NSLocalizedDescription=Error decoding object, NSLocalizedFailureReason=Attempted to decode store response}}}
我尝试使用 SKTestSession有效 .storekit配置文件,但它没有帮助。虽然在我的单元测试中这适用于 SKTestSession .
有没有办法在 Xcode 12 GM 的 UI 测试中测试存储?或 SKTestSession只能在单元测试中使用吗?

最佳答案

因此,经过几天的挖掘,我似乎找到了使其工作的方法。您只需要在运行 SKProductsRequest 之前添加一些延迟在应用程序启动时。我只为 UI 测试设置了 5 秒延迟——就是这样!现在我的请求有效!
这是请求无错误运行所需的行:

// Wait for StoreKitTest
Thread.sleep(forTimeInterval: 5)
// Start request
request.start()

关于xcode - SKProductsRequest 在 UI 测试和 SKTestSession 中的 Xcode 12 GM 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63923508/

相关文章:

c++ - Xcode shell脚本调用错误

iPhone,如何设置 View 背景,如设置屏幕灰色样式?

iOS IAP - 如何区分 "restoring done, but not purchased before"状态

ios - SKStoreReviewController requestReview() 如果用户对应用进行评分,系统将永远不会提示他对我们进行评分吗?

ios - Firebase 消息传递 iOS 14

ios - swift ,iOS 14 : where to find device logs?

objective-c - 我们可以在 objective c 中使用接口(interface)和实现文件吗?

iphone - 退出编辑模式并更新导航栏项目

swift - 检查用户是否已经在 SwiftyStoreKit 中购买了产品

ios14 - iOS 应用程序剪辑可以从 URL 启动吗?