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

app*_*ife 3 macos storekit in-app-purchase swift mac-catalyst

应用内购买对于我的 iOS 方面来说效果很好。StoreKit 中的数据已按原样填充。相同的代码不适用于该项目的 Mac Catalyst 版本。我什至在 App Store 上为我的 Mac 应用程序创建了一个列表,其中包含用于应用程序内购买的不同捆绑标识符。我有一个打印功能,可以返回 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)")}
Run Code Online (Sandbox Code Playgroud)

iOS 应用程序将返回产品标识符、标题和价格。Mac 应用程序将一无所获。

app*_*ife 5

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

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

var request: SKProductsRequest!
Run Code Online (Sandbox Code Playgroud)