ios - 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)")
}
}
任何想法?
解决方案
推荐阅读
- typescript - 为 VSCode 扩展 API 创建每个单词的独特悬停?
- php - 如何修复 PHP 中的“指定的 DSN 包含驱动程序和应用程序之间的体系结构不匹配”错误
- cabal - IHaskell 用于新型阴谋集团项目?
- r - 如何使用 sf 包从 3D 数据中提取建筑面积
- reactjs - react.js 中如何使用 localStorage?
- kotlin - Android协程没有完成
- java - FTPClient.retrieveFile 返回 false,但文件仍在下载
- termux - 打开 termux:127|:/data/data/com.termux/files/home 后出错
- vert.x - 如何在 vertx future compose 中使用中间结果?
- r - 使用 batchtools/BatchJobs 在两台 R 服务器上进行并行计算