沙盒环境中的 macOS 应用内购买未授权

Jam*_*rch 5 macos xcode app-store in-app-purchase mac-app-store

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

打开应用

Apple 的 IAP 测试建议可在此处找到:

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

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

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

导航到应用内产品表

这是我的产品表:

产品表

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

尝试按“免费”购买产品

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

需要登录

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

账号不在本店

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

您没有权限

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

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

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

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

你想得到

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

加工

我可能做错了什么?我是否也需要登出任何东西(例如 iCloud)Settings > Internet Accounts

Jam*_*rch 2

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

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