2012-12-04 58 views
0

我有一个有趣的问题...(至少对我来说)iOS订阅验证

我开发了一个使用自动更新订阅的应用程序。它们的设置方式是,应用程序保存订阅收据,然后每次订阅需要验证时,应用程序会将收据信息发送到我的服务器,验证收据仍然有效。

在我的应用程序中,我有一个名为“testMode”的应用程序范围的常量。除此之外,这会导致应用程序使用沙箱或生产标志查询我的服务器。所以如果我在测试模式下测试应用程序,应用程序将查询我的服务器上检查沙箱Apple服务器的文件。如果应用程序未处于测试模式(就像我将其提交给Apple时一样),它会查询我的服务器上的生产文件,该文件检查Apple生产服务器上的数据。

我的应用被拒绝了,因为它在订阅时产生错误。该错误是21007,这意味着沙箱收据已发送到生产验证服务器。

所以我的问题是:如果Apple测试人员使用沙箱环境,我如何提交用户生产服务器验证的应用程序?

+0

当您提交您的应用程序时,您可以向苹果提供评论笔记中的“虚拟”帐户信息吗? – klcjr89

+0

该应用程序不使用帐户 – Brodie

回答

0

我遇到过类似的问题。这是处理它的最佳方式:

每当您的服务器收到来自应用程序的新收据时,请先用生产服务器验证它。然后,如果您遇到错误21007,请尝试使用沙盒服务器的相同收据。这就是我所做的,它运作良好。苹果应该推荐这个,但他们不这样做。

使用此方法,您应该能够摆脱应用程序中的testMode(除非您将其用于其他目的)。