xcode - macOS 应用程序的 Xcode 本地环境中的 StoreKit (IAP) 不返回任何产品
问题描述
我正在尝试使用 Xcode 中的本地环境来测试macOS应用程序的应用程序内购买。我已按照 WWDC 2021 SKDemo 示例中的代码进行操作,但无济于事。问题是请求产品的调用没有返回任何产品。为了排除故障,我为多平台应用程序创建了一个最小的 Xcode 项目,它适用于 iOS,但不适用于 macOS。我在这两种情况下都编辑了方案,以便选择相同的 StoreKit 配置文件。这是基本代码(iOS 和 macOS 相同):
class MyStore : ObservableObject {
@Published private(set) var products : [Product] = []
init() {
Task {
await requestProducts()
}
}
@MainActor
func requestProducts() async {
do {
print("(1) before requesting products") // PRINTED ON BOTH iOS and macOS
let storeProducts = try await Product.products(for: ["nonconsumable.motorcycle"])
print("(2) after requesting products") // PRINTED ON BOTH iOS and macOS
for product in storeProducts {
print("(3) adding product") // PRINTED ONLY on iOS
products.append(product)
}
} catch {
print("STORE: Failed product request: \(error)")
}
}
}
在 iOS 上,所有三个打印语句都被输出,而在 macOS 上只有前两个。我似乎无法在 macOS 上使用本地环境进行 IAP 测试——我错过了什么?
我想知道这个问题是否与目标功能和签名有关:我已经为两个目标添加了应用内购买功能,并且我对两个目标都使用了默认的 Xcode 管理的签名。
macOS:12.0.1;Xcode 13.1;部署目标:macOS 12.0。
更新:如果我在 App Store Connect 中设置产品,并在 Xcode 方案中选择StoreKit Configuration : None那么它按预期工作。所以问题出在 macOS 上使用本地 StoreKit 配置时。
解决方案
推荐阅读
- python - Python 没有检测到语法错误
- authorization - ALFA 中的常量(常量变量)
- javascript - 导入 {functionName} 在运行时构建的函数列表中未定义
- python-sphinx - Sphinx 中是否有任何 MathML 支持(通过 mathjax 扩展)?
- regex - perl 中的正则表达式无法按预期工作
- cassandra - 每分钟调用 DseCluster.init()/close() 有什么后果吗?
- javascript - 如何在 Webpack 中使用 p5js
- javascript - 什么 webpack4 加载器用于加载 *.svg 文件、*.gif、*.eot?
- statistica - Statistica VB - 包括一个外部宏
- javascript - 是否可以有多个 .then 函数?