IOS13 beta 5:SKProductsRequest在模拟器上应该能工作吗?

7

虽然实际设备上一切都运行良好,但我想知道为什么在 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")
    }
}

这里使用 iOS 13 模拟器设备在 Beta 5 上也遇到了同样的问题。将在 Beta 6 上进行检查并报告结果。 - Tim
同样的问题出现在Xcode 11.1 (11A1027)上,但只在iPad模拟器上:/ - Ludovic Landry
类似于https://dev59.com/_FMH5IYBdhLWcg3w1TyK的问题。 - DoesData
3个回答

5

这个问题已经在苹果公司的Xcode beta 6中得到了修复(2019年8月16日)。

[2019年9月30日更新]

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


5
在 Xcode 11 GM 中,当我在模拟器上请求产品时,会得到一个 request:didFailWithError: 的错误信息,其中的错误消息为:Error Domain=ASDErrorDomain Code=507 "Error decoding object" UserInfo={NSLocalizedDescription=Error decoding object, NSLocalizedFailureReason=Attempted to decode store response} - stakri
1
我确认在Xcode 11版本11.0 (11A420a)中仍存在该问题。 - Daniel Mavrakis
在 Xcode 11.1 (11A1027) 上遇到了相同的问题,但只在 iPad 模拟器上:/ - Umair Suraj
Xcode 11.2 (11B52) 上面出现相同的错误。这个问题还没有解决吗? - daredevil1234
在iPad模拟器上,Xcode 11.3出现了相同的错误,我的应用程序仍然被拒绝。 - Hassan Taleb
显示剩余4条评论

3

在评论中提到的作者答案中,我遇到了同样的问题。

( 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,并在模拟器中成功加载产品。


在我的情况下,即使选择了iOS 13.0作为部署目标并进行清理,在使用xcode 11版本11.0(11A420a)时,问题仍然存在。 - Daniel Mavrakis
在将部署目标设置为13.0后,我仍然遇到此错误。 - Kukiwon

2

Xcode 11.2 (11B52) iOS 13.2模拟器可用

如同所有相关问题的建议一样,确保你已经完全设置好了产品,例如应用内购买。最重要的是,确保你的协议、税务和银行部分已经完成了100%:

  1. 进入App Store Connect
  2. 选择协议、税务和银行
  3. 在协议选项卡下,确保免费和付费应用程序协议显示活动状态
  4. 确保您已经填写了其余选项卡上的所有必需信息。
  5. 如果在这些选项卡中的任何一个中仍然看到空字段或可以输入信息的字段,则意味着您还没有完成。

为了快速测试应用程序的可购买产品,您可以使用Apple的示例应用内购买示例。您需要向它提供您的应用程序包标识符,并在特定文件中列出可购买的产品ID。所有说明都在那里。

截至本帖发布日期,模拟器SKProductsRequest完美运行。

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接