在应用内购买对于我的iOS设备来说效果很好。来自StoreKit的数据将按需填充。相同的代码不适用于该项目的Mac Catalyst版本。我什至在App Store上为Mac应用程序创建了清单,并为应用程序内购买使用了不同的捆绑包标识符。我有一个打印功能,可以返回StoreKit找到的产品,它在iOS上运行良好,但是在使用Mac Catalyst时却没有任何结果。
这是我所做的:
在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!