首页 > 解决方案 > InAppPurchase - 仅在新项目中某些产品的标识符无效

问题描述

我正在努力解决 inAppPurchase 的问题。

我有一个(Objective-c)应用程序,该应用程序目前在商店中出售,其中有一些(非消耗品)inAppPurchases。它工作正常:我可以获得一些提供产品 ID 的产品列表。

现在,我将这个应用程序移植到 SwiftUI,然后我有了另一个(swift)项目,它具有相同的 Bundle Identifier 甚至相同的版本/构建。

SKProductsRequest 仅适用于两种产品,对于所有其他产品,我总是认为标识符无效。

唯一的区别是两个工作产品的产品 ID 很短(00 和 01),而其他产品的产品 ID 更长(label.label.label.T00、label.label.label.T01、...总共 36 个字符)。

由于标识符应该是正确的,因为它们在当前应用程序中工作,我无法找出问题所在。

如果这很重要,这是我用来获取所有产品的产品信息的代码:

func getProducts(productIDs: [String]) {
  print("Start requesting products ...")
  let request = SKProductsRequest(productIdentifiers: Set(productIDs))
  request.delegate = self
  request.start()
}

....

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

   if !response.products.isEmpty {
      for fetchedProduct in response.products {
        DispatchQueue.main.async {
            self.products.append(fetchedProduct)
        }
      }
   }

   for invalidIdentifier in response.invalidProductIdentifiers {
      print("Invalid identifiers found: \(invalidIdentifier)")
    }
}

任何想法?

标签: iosin-app-purchase

解决方案


推荐阅读