应用内购买沙盒环境循环
Posted
技术标签:
【中文标题】应用内购买沙盒环境循环【英文标题】:in-app purchase Sandbox Environment loop 【发布时间】:2012-08-04 15:07:29 【问题描述】:我的生产应用中有应用内购买,我正在添加新的待售商品。
但是,我无法在沙盒环境中测试新的应用内购买。我的购买显示正确。恢复作品。但是,如果我购买了商品,则会提示我登录。我使用测试用户帐户登录(我有 4 个大约一个月前工作并且处于活动状态)。然后我被定向到 AppStore,在那里我会弹出一个对话框,上面写着:[Environment: Sandbox] with cancel or continue。当我继续时,系统会提示我输入 Apple id 密码,我使用该密码并按 OK。它说“正在加载...”几秒钟,然后弹出窗口再次显示 [Environment Sandbox] 取消/继续。
我已经经历了大约 5 次。 我已经尝试过我之前用来测试的帐户 我创建了一个新用户 我试图在大约一个月前都可以使用的多台设备上进行测试。 我已经重置了我的设备。
与此同时,我已经能够测试我的功能并且没问题 - 但我无法在发布更新之前进行我想做的端到端购买/测试。
有人见过类似的吗?我正在寻找任何建议。谢谢。
【问题讨论】:
这周我尝试了一些事情,但这仍然不起作用。首先,我的版本和构建在目标构建摘要中不一致。其次,我专门为带有应用内购买的应用创建了一个新的配置文件并安装了它。我也在使用一个新的测试用户。但是,我收到交易失败,error.code 0 和“无法连接到 iTunes Store”的消息。 另外,我已经使用我的测试用户登录到设置->商店。 Apple 文档说只注销而不登录。当我这样做时,应用内购买会提示我验证已填充我的开发人员 ID 的登录,并且不会让我输入测试用户来执行购买. 【参考方案1】:好的。我已经想通了。这是我的测试帐户。由于我使用该帐户并通过设置-> App Store 登录,因此我使用信用卡和电子邮件通知进行注册。我使用了一个以前创建但尚未“激活”的旧帐户,并且它有效。因此,关键是不要通过“设置”->“商店”登录 - 保持退出状态。然后使用仅在 iTunes Connect 上创建但从未激活的测试帐户登录。
【讨论】:
+1 正确。登录该帐户似乎会永久破坏该帐户。我重新创建了失败的帐户,它立即生效。 确实如此。我在 iPhone 上启动了激活测试帐户,但在询问信用卡号时我删除了该过程。然后我打开了我的应用程序并尝试了 IAP。当被问及我的 ID 时,我选择了一个现有的 ID,输入了测试帐户的登录/通过信息,一切正常。 @jpporterVA 你会认为他们会在某处注意到这一点。无论如何似乎也对我有用,但你有没有收到任何电子邮件或其他通知说它已经完成了? 他们在页面底部(developer.apple.com/library/ios/documentation/…)确实提到不要在生产环境中使用测试帐户。此外,请确保您正在运行带有开发代码签名的应用程序。【参考方案2】:我也有一段时间遇到这个问题,但对我来说,解决方案是别的:我一直收到这个提示,而且我之前测试会话中的所有 SKPaymentTransactions 都在这个方法中重新出现:
paymentQueue:updatedTransactions:
.
有些正在完成(并弄乱了我的本地采购记录),有些则一次又一次地失败。这是因为在我在上述方法中接收这些转换的代码中,一旦我处理了已完成或失败的事务,我就没有调用:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
.
这会将它们从支付队列中移除。交易只是试图完成,因此提示和我搞砸的本地购买记录。
希望这会有所帮助! :)
【讨论】:
我可以确认这在过去对我有用。这些弹出窗口甚至出现在我的个人 iPhone 设备上(据我所知,我认为它会在我拿到新设备时携带到它们上)。尽管我尝试了所有可能的支持解决方案,但我从未让 Apple 的任何人为我修复它。我最终做了什么,解决了这个问题,正是这个答案。旧的、挥之不去的、未完成的交易当时已有数年之久,但仍然以某种方式不断窃听我的 私人帐户。查看该设备的日志(Xcode>Devices)时,我可以找到与旧 IAP 测试应用相关的 IAP 产品 ID。 (续)为了解决这个问题,我必须使用相同的 bundle id 制作一个新的测试应用程序,并实现一个可以完成这些事务的事务观察器。这似乎真的为我解决了问题。以上是关于应用内购买沙盒环境循环的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用内购买:Apple 评论者会测试实时环境还是沙盒环境?
即使状态更改为“准备出售”,在应用程序购买中仍显示“环境沙盒”