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

5
我正在尝试在macOS应用程序中使用相同的Swift代码、沙盒测试人员和iTunes Connect帐户来使应用内购买(IAP)正常工作。然而,我无法使其正常工作。我正在使用macOS High Sierra 10.13.6。
打开应用程序
苹果的IAP测试建议可以在此处找到:
引用: 在开发的macOS设备上,退出Mac App Store。然后在Xcode中构建您的应用程序,并从Finder中启动它。 如果没有出现“[环境:沙盒]”文本,则表示您正在使用生产环境。确保运行的是签署为开发的应用程序版本。签署为生产的版本使用生产环境。
我已经按照这些步骤进行了操作,退出了Mac App Store并构建了我的应用程序-签署为开发-然后从Finder中启动了它。不幸的是,这意味着我无法获得调试日志。
导航到应用内产品表格

Products table

我可以通过点击“免费”按钮或“£4.99”按钮购买产品。

尝试通过点击“免费”按钮购买产品

等待片刻之后,弹出一个提示说“需要登录”。我使用其中一个沙盒测试人员的账户(注意:我尝试了五个不同的测试账户,在相同的iTunes Connect账户下的iOS应用程序中都可以正常使用),这些账户注册时使用的是非Apple ID的电子邮件地址:

Sign-in required

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

Account not in this store

在选择“取消”(建议这里)后,等待片刻后,下一个弹出窗口将出现:

You are not authorized

您目前未被授权在沙盒环境中购买此InApp。

[环境:沙盒]

因此,我不确定是否已登录,并且我认为我的购买已失败(我的表UI未更新以显示“已购买”)。请注意,我还尝试在此处按“更改商店”,但最终仍然失败。

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

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

Do you want to get

然而,现在购买交易从未完成:

Processing

我可能做错了什么?我需要登出任何东西(例如iCloud)在“设置>互联网账户”中吗?

这是一个软件编程问题吗?还是你只是想猜测一下?你没有标签表明你使用的是什么语言进行编写。我猜测你正在使用已经在测试中使用过的电子邮件地址。 - El Tomato
1个回答

2
似乎有些无聊,但最终我通过创建新的沙盒测试员账户解决了这个问题(提示:这一次,我将它们配置为基于美国,以避免在支付流程中切换商店时出现复杂情况)。
我认为问题在于我没有验证我使用的沙盒测试员账户。这可能是因为苹果发送给我验证/激活沙盒测试员账户的电子邮件被归类到我的垃圾邮件中并完全错过了,或者是因为当我点击他们的电子邮件中的链接时,他们的后端出现问题(我经历了这两种行为)。

我想补充一下我的事后想法,即重复使用已经通过iOS应用商店购买而“损坏”的沙盒测试人员可能会带来“厄运”。这只是我的迷信,但为了避免冒着面对错误的风险,不妨花几分钟时间创建一个全新的沙盒测试人员账户,专门用于macOS应用商店购买。 - Jamie Birch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接