【发布时间】: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