【问题标题】:IOS13 beta 5: Does SKProductsRequest supposed to work on simulator?IOS 13 beta 5:SKProductsRequest 应该在模拟器上工作吗?
【发布时间】:2019-08-23 22:34:39
【问题描述】:

虽然在实际设备上一切正常,但我想知道为什么在 iOS 13 beta 5 上的模拟器上从不回调代理

我在互联网上搜索了答案,但一无所获。

我实现了协议的3个功能如下:

public class StoreKit {
    var request: SKProductsRequest? = nil   // Keep a strong reference

    public func fetchProducts() {
        print("\(#function): start fetching products")

        let r = SKProductsRequest(productIdentifiers: productIDs)
        request = r
        r.delegate = self
        r.start()
    }

}

// MARK: - Get the requested products

extension StoreKit: SKProductsRequestDelegate {
    /// Products are received
    public func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
        print("\(#function): did receive")
    }



    /// Unable to received the products
    public func request(_ request: SKRequest, didFailWithError error: Error) {
        print("\(#function): Error for request: \(error.localizedDescription)")

    }



    public func requestDidFinish(_ request: SKRequest) {
        print("\(#function): did finish")
    }
}

【问题讨论】:

  • 在 Beta 5 上使用 iOS 13 模拟器设备时遇到同样的问题。将检查 Beta 6 并报告。
  • Xcode 11.1 (11A1027) 上的相同问题,但仅在 iPad 模拟器上:/

标签: ios-simulator storekit ios13


【解决方案1】:

遇到了同样的问题,正如作者回答的 cmets 中提到的那样。

( request:didFailWithError: with error message being: Error Domain=ASDErrorDomain Code=507 "Error decoding object" UserInfo={NSLocalizedDescription=Error decoding object, NSLocalizedFailureReason=Attempted to decode store response} )

我将项目的 iOS 部署目标更改为 iOS 13.0,并在模拟器中成功加载了产品。

【讨论】:

  • 就我而言,使用 xcode 11 release Version 11.0 (11A420a),即使选择 iOS 13.0 作为部署目标并清理后问题仍然存在。
  • 在将部署目标设置为 13.0 后,我仍然遇到此错误。
【解决方案2】:

Xcode 11.2 (11B52) iOS 13.2 模拟器 为我工作

正如几乎所有对相关问题的建议中所述 - 确保您已完全完成产品设置,例如应用内购买。最重要的是确保您的协议、税务和银行业务部分已 100% 完成:

  1. 转到 App Store Connect
  2. 选择协议、税务和银行业务
  3. 在“协议”标签下,确保免费和付费应用协议显示有效状态
  4. 确保您已在其余选项卡上填写了所有必需的信息。
  5. 如果在任何这些选项卡中您仍然看到空白字段或您可以在其中输入信息的字段,则表示您还没有完成。

要快速测试您应用的可购买产品,您可以使用Apple's sample In app purchase example。您确实需要给它您的应用程序的捆绑 ID,并在特定文件中列出可购买的产品 ID。所有说明都在那里。

截至本文发布之日,模拟器 SKProductsRequest 运行良好。

【讨论】:

    【解决方案3】:

    Apple 已在 Xcode beta 6(2019 年 8 月 16 日)中修复了该问题。

    [2019 年 9 月 30 日更新]

    对于那些仍然遇到此问题的人,您是否下载了 2019 年 9 月 24 日发布的 Xcode v11.1 (11A1027)?我对此没有任何问题。如果您仍然,请尝试添加一些信息,以便我可以进一步帮助您。

    【讨论】:

    • 在 Xcode 11 GM 中,当我在模拟器上请求产品时,我收到 request:didFailWithError: 错误消息为:Error Domain=ASDErrorDomain Code=507 "Error decoding object" UserInfo={NSLocalizedDescription=Error decoding object, NSLocalizedFailureReason=Attempted to decode store response}
    • 第二个 Xcode 11 GM Seed 已发布。试试那个。
    • 我确认 xcode 11 版本 11.0 (11A420a) 仍然存在该问题
    • Xcode 11.1 (11A1027) 上的相同问题,但仅在 iPad 模拟器上:/
    • Xcode 11.2 (11B52) 上的相同错误。还是没有解决办法?
    猜你喜欢
    • 2019-12-15
    • 2019-12-14
    • 2014-11-07
    • 2016-02-11
    • 2017-07-28
    • 2020-01-14
    • 1970-01-01
    • 2012-09-14
    相关资源
    最近更新 更多