swift - Mac Catalyst 上的应用内购买不起作用

标签 swift macos in-app-purchase storekit mac-catalyst

应用内购买适用于我的 iOS 方面。 StoreKit 中的数据按应有的方式填充。相同的代码不适用于项目的 Mac Catalyst 版本。我什至在 App Store 上为我的 Mac 应用创建了一个列表,并为应用内购买提供了不同的捆绑标识符。我有一个打印功能,它返回 StoreKit 找到的产品,它在 iOS 上运行良好,但在使用 Mac Catalyst 时没有任何结果。

这是我所做的:

  • 确保在功能部分中添加了应用内购买。
  • 确保已导入 Store Kit 框架。
  • 确保捆绑包标识符正确。
  • 确保填写所有协议(protocol)。
  • 我已退出 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 应用程序将返回产品标识符、标题和价格。 Mac 应用程序将一无所有地返回。

    最佳答案

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

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

    var request: SKProductsRequest!
    

    关于swift - Mac Catalyst 上的应用内购买不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61802978/

    相关文章:

    ios - 使用 Swift 的位置 BLE GPS 解码 location_and_speed

    类的 Swift 协议(protocol)扩展链接初始化

    macos - 如何在跨平台应用程序中嵌入 Web 浏览器控件?

    objective-c - 编译/运行在 10.7.x 中实现 NSSharingServicePicker 的 Cocoa 项目

    ios - 如何在iTunesConnect上创建动态IAP?

    xcode - 不激活全屏模式的 Kiosk 风格 - OS X

    ios - iOS 13 更新后 iCloud UIDocument 打开失败

    macos - 访问自己在 Macbook 中生成的 ssh key

    ios - 是否使用 Game Center 实现成就?

    ios - 从应用内购买中获取付款信息