Mac 上的应用内购买 Catalyst 不工作

In App Purchase on Mac Catalyst Not Working

应用内购买对我的 iOS 方面来说效果很好。来自 StoreKit 的数据按应有的方式填充。相同的代码不适用于项目的 Mac Catalyst 版本。我什至在 App Store 连接上为我的 Mac 应用程序创建了一个列表,其中包含用于应用程序内购买的不同捆绑包标识符。我有一个打印函数 return 是 StoreKit 找到的产品,它在 iOS 上运行良好,但在使用 Mac Catalyst 时没有任何结果。

这是我所做的:

  1. 确保应用内购买已添加到功能部分。
  2. 确保已导入 Store Kit 框架。
  3. 确保包标识符正确。
  4. 确保所有协议都已填写。
  5. 我已退出 Mac App Store。

适用于 iOS 但不适用于 MacOS 的代码:

    override func viewDidLoad() {
    SKPaymentQueue.default().add(self)


    let productIds: Set<String> = ["..."]
    var request = SKProductsRequest(productIdentifiers: productIds)
    request.delegate = self
    request.start()
}

  func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) {
    print("Loaded")

    for product in response.products {
        print("What came: \(product.productIdentifier) \(product.localizedTitle) \(product.price.floatValue)")}

iOS 应用程序将 return 包含产品标识符、标题和价格。 Mac 应用程序将 return 什么都没有。

我发现了问题。我没有创建对我的产品请求的强烈引用。

这行代码解决了我的问题:

var request: SKProductsRequest!