【问题标题】:macOS In-App Purchase in sandbox environment not authorised沙盒环境中的 macOS 应用内购买未经授权
【发布时间】:2019-02-01 11:33:09
【问题描述】:

我正在尝试使用与我的 iOS 应用程序相同的 Swift 代码、沙盒测试器和 iTunes Connect 帐户在 macOS 应用程序中运行应用程序内购买 (IAP)。但是,我无法让它工作。我正在使用 macOS High Sierra 10.13.6。

打开应用

Apple 的 IAP 测试建议见 here:

在开发 macOS 设备上,退出 Mac App Store。然后在 Xcode 中构建您的应用程序并从 Finder 启动它。

如果没有出现“[Environment: Sandbox]”文字,则说明您使用的是生产环境。确保您正在运行应用程序的开发签名版本。生产签名的构建使用生产环境。

我已按照这些步骤退出 Mac App Store,并构建我的应用程序 - 已签署开发协议 - 然后从 Finder 启动它。不幸的是,这意味着我没有得到调试日志。

导航到应用内产品表

这是我的产品表:

我可以通过按“免费”按钮或“4.99 英镑”按钮购买产品。

尝试按“免费”购买产品

稍等片刻后,弹出“需要登录”的弹出窗口。我使用我的一个沙盒测试器登录(注意:我现在尝试了五个不同的测试帐户,所有这些都在同一个 iTunes Connect 帐户下的 iOS 应用程序上运行),并使用 不是的电子邮件地址注册em> Apple ID:

选择“购买”后,稍等片刻,就会出现下一个弹出窗口:

选择“取消”后(推荐here),稍等片刻后,出现下一个弹出窗口:

您目前无权在 Sandbox 中购买此 InApp。
[环境:沙盒]

所以我不确定它是否让我登录,并且我假设我的购买失败(我的表格 UI 没有更新为“已购买”)。请注意,我也尝试在此处按“更改商店”,但最终仍然失败。

再次按“免费”尝试购买产品

这一次,我没有被提示登录;而是立即询问我是否要购买该产品。我点击“确认”。

但是,现在购买交易永远不会完成:

我可能做错了什么?我是否也需要退出 Settings > Internet Accounts 中的任何内容(例如 iCloud)?

【问题讨论】:

  • 这是一个软件编码问题?或者你只是想要一个好的猜测?您没有标签建议您使用哪种语言编写。我的猜测是您使用的电子邮件地址已经在另一个测试中使用过。

标签: xcode macos in-app-purchase app-store mac-app-store


【解决方案1】:

看起来很蹩脚,但我最终通过创建新的沙盒测试帐户解决了这个问题(提示:这一次,我将它们配置为美国,以避免在支付流程中切换商店的复杂性)。

我认为问题在于我没有验证我一直在使用的沙盒测试员帐户。这可能是因为 Apple 要求我验证/激活沙盒测试员帐户的电子邮件被分类到我的垃圾邮件中并且完全错过了,或者因为当我点击他们电子邮件中的链接时他们的后端出现了问题(我经历了这两种行为)。

【讨论】:

  • 我将添加我的事后分析,认为重新使用已经被 iOS App Store 购买“宠坏”的沙盒测试器可能是“运气不好”。这只是我的迷信,但可能值得您花几分钟时间为 macOS App Store 购买创建一个全新的沙盒测试器帐户,而不是冒着数小时的风险面临我在重新使用沙盒测试器时遇到的错误购买了 iOS App Store。
猜你喜欢
  • 2012-08-04
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多