iOS 和 macOS 上的通用应用内购买

Posted

技术标签:

【中文标题】iOS 和 macOS 上的通用应用内购买【英文标题】:Universal in-app purchase on iOS and macOS 【发布时间】:2020-03-29 21:36:58 【问题描述】:

有没有人成功实现 ios 和 macOS 的通用应用内购买? 我无法使用 SKProductsRequest 在非 Catalyst macOS 应用程序中获取产品。它们作为 invalidProductIdentifiers 返回。

到目前为止我所拥有的:

    iOS 和 macOS 的单一 App Store 连接记录 两个应用使用相同的 BundleID 相同的应用内购买产品 ID 使用 Xcode 11.4 构建 产品提取适用于 iOS

Apple 宣布这也适用于非 Catalyst 应用程序,并且默认情况下它会为 Catalyst 应用程序启用。假设在 macOS 应用程序中默认情况下未启用此功能,我该如何使其工作?

【问题讨论】:

【参考方案1】:

我这样做后现在可以工作了:

    存档 macOS 版本并将其上传到 App Store Connect,然后等待大约 15 分钟 重启电脑

希望这对正在寻找解决方案的人有所帮助。

【讨论】:

我的问题可能类似。我已经从现有的 iOS 应用程序创建了一个通用应用程序,但是在我的 Mac 上运行时调用 SKProductsRequest 时,没有任何反应。没有错误,但是没有调用 func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) 。在 Mac 和 iOS 设备上运行时是否需要不同的 IAP 代码? @gbotha 还有func request(_ request: SKRequest, didFailWithError error: Error) 功能。检查是否调用了那个。 谢谢,我发现了我的错误。我没有强烈引用 SKProductsRequest。这并没有导致我所有的 iOS 应用程序出现问题,但 macOS 版本失败了。我刚刚输入“var request: SKProductsRequest!”,现在 macOS 催化剂应用程序现在可以很好地找到 iap 产品详细信息。 你是个天才!我打算为此浪费一个技术请求,因为我无法弄清楚我做错了什么。我只好重启电脑!!!我发现并想提到的另一个错误是,在您为 Mac 存档项目后,如果您尝试验证它,则会收到错误消息。解决方案不是验证,只需按下分发按钮并将构建上传到 App Store。 我只需要重新启动即可解决同样的问题。

以上是关于iOS 和 macOS 上的通用应用内购买的主要内容,如果未能解决你的问题,请参考以下文章

Orchid现在可用于MacOS桌面端

我的设备(ios)上的测试应用未显示我的应用内购买

iOS上的应用内购买可下载内容<6

在 Mac 和 iOS 应用之间共享应用内购买

禁用/隐藏应用内购买

消耗品自动更新订阅 iOS