【问题标题】:In App Purchase on Mac Catalyst Not WorkingMac Catalyst 上的应用内购买不起作用
【发布时间】:2020-05-14 16:54:42
【问题描述】:

在我的 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)")}

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

【问题讨论】:

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


    【解决方案1】:

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

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

    var request: SKProductsRequest!
    

    【讨论】:

    • 也为我工作。
    • 这个答案在沙盒环境中也为我解决了问题,但在发布我的应用程序后,审核小组说问题仍然存在。这个噩梦般的问题似乎通过进入 App Store Connect 并为我的应用内购买取消选中“清除出售”然后保存来解决。然后重新检查并再次保存。
    • 在我的情况下,iOS 应用程序正在运行,而 macCatalyst 在我的沙盒测试器环境中运行,但它不适用于苹果审查团队,该应用程序没有收到来自 App Store 的购买确认或购买确认存储在钥匙串中,这仅适用于 MacCatalyst
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多