2012-05-23 44 views
9

我有一个测试用户帐户,可以在应用程序购买中正常运行。在In App Purchase Test中删除购买用户帐户

我想“删除”从这个账户购买,这样我就可以多次测试购买。现在,如果我尝试购买,它在逻辑上说测试用户已经购买了有问题的产品。

我可以删除测试用户帐户购买,这样我可以多次测试相同的购买。每当我想测试购买时,我都不愿意创建一个新的测试用户。

编辑:每次我尝试购买,我得到一个对话框“您已购买此点击OK再次免费下载它。”

+0

我可以再次澄清:1)这是应用内购买还是从应用商店购买? 2)如果这是应用程序内购买,应用程序如何知道您已购买该项目?国家必须保存在某个地方。 – nhahtdh

+0

这个问题是否有帮助:http://stackoverflow.com/questions/7604578/how-can-i-reset-sandboxed-in-app-purchases-on-ios-for-testing? – borrrden

+0

我只知道3种方式来存储数据:iCloud,在设备上,和应用程序自己的服务器。 – nhahtdh

回答

8

如果你真的想测试它干净,你将不得不创建另一个测试用户。但是,我不认为这需要。重新下载应用内购买是几乎相同的代码流。实际的购买和验证逻辑不是您的应用程序的一部分,并且用户多次购买东西不是应该发生的事情(除非您指定它是那种消耗品)。如果它适用于重新下载,则可以安全地假定它将用于初次购买。

您没有访问这些数据。如果苹果公开了重置购买的方式,那么他们将面临安全风险,因为我认为他们的沙盒服务器代码与其生产代码几乎相同(否则沙箱将毫无意义)。由于数据位于Apple帐户的Apple服务器上,因此可以跨越多个设备。

另一种办法是将删除从你的iTunes连接应用程序内购买,并作出一个新的。

+3

** [...]“重新下载应用内购买是一个几乎相同的代码流。”[...] **只是想提醒一下,尽管这种说法对于给定的交易处理程序是正确的。对于应用程序代码本身来说并不一定是真实的,因为初始购买可能与恢复旧购买有很大不同。 – Questor

+1

收据检查验证码如何?您需要在代码收据检查时测试没有产品的场景,反之亦然。 –

+0

@theReverend这可能是你需要模拟的东西(即为了测试的目的,有一个方法返回YES,每次返回NO)。 – borrrden

1

如果您的应用程序内购买的类型是消耗品那么您可以重新安装您的应用程序。如果您的应用程序内购买是非易耗品,那么您将需要创建其他测试用户。

+0

我们可以在发布到Appstore之前将IAP类型从'consumable'更改为'non-consumable'吗?这将是测试的解决方案。 – brigadir

+0

我们在创建iTunesConnect后无法更改iTunes Connect中的IAP类型,因此我们可以为测试目的创建更多的“易耗”IAP。 –