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 上的通用应用内购买的主要内容,如果未能解决你的问题,请参考以下文章