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

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

到目前为止我所拥有的:

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

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

【问题讨论】:

    标签: ios swift xcode macos in-app-purchase


    【解决方案1】:

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

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

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

    【讨论】:

    • 我的问题可能类似。我已经从现有的 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。
    • 我只需要重新启动即可解决同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2012-06-29
    相关资源
    最近更新 更多