iOS / iPhone:在应用程序处于“拒绝”状态时应用程序内购买沙箱损坏?

时间:2011-08-06 07:31:30

标签: ios in-app-purchase itunesconnect sandbox appstore-approval

(请参阅下面的 MAIN THRUST ,跳到我问题的主旨。)

我的iOS应用程序在Apple审核流程中被拒绝,原因很简单。

但是,我想让新版本进行一次性测试,包括重新测试我们的应用内购买(应用中只有一个可购买的商品)。

现在,在初次检索产品信息时,应用程序崩溃了。它之前从未以这种方式崩溃,并且自从我们多次成功测试沙盒模式下的应用程序内购买后代码没有改变。 (事实上​​,在最初提交的版本与此版本之间没有任何代码发生了修改;修复只是一个info.plist设置更改。)

为了使问题复杂化,我使用Airplay / Marmalade SDK构建应用程序,并使用自己的API和回调机制包装Objective C调用和回调机制。但是,这个包装器非常薄,所以我希望/相信这是一个普通的iOS /应用内购买问题,而不是特定于Marmalade的东西。

因此,正如我所说,它在我用Marmalade调用检索产品信息和调用my(C ++)回调的时间之间崩溃了。 (即,在Marmalade在SKProductsRequest对象上调用[productsRequest start]的时间和调用时间productsRequest:didReceiveResponse()并且Marmalade依次调用我的时间之间的某个地方。)

MAIN THRUST 我的问题:

我的应用在iTunesConnect上处于“已拒绝”状态。此外,当我在iTunesConnect中查看应用程序内购买项目时,它也被标记为“已拒绝”。但是,我已经在审核过程中讨论了我与Apple的应用内购买,我相信应用内购买本身对他们来说很好,唯一剩下的问题是我已经有的小问题修复(这是他们的拒绝细节所说的:只有那一项)。

所以:我需要了解,当我的应用程序(及其相关的应用程序内购买)处于这种“被拒绝”状态,等待我从我那里获得新的二进制文件时,重新测试它是否很棘手(或者可能不可能)应用程序内购买,我最好的行动方案就是重新提交带有次要修复程序的应用程序,并且相信(因为它是在正常测试期间工作的时候,当事情不处于被拒绝的状态时)相同的状态一旦Apple重置所有内容以测试新的二进制文件,应用内购买将自行完成。

或者我现在应该做些什么不同的事情让我可以重新测试应用内购买?

我正在考虑在iTunesConnect通信中询问Apple,但我不想引入它们的任何复杂性,因为到目前为止审查过程非常快速和有效。

1 个答案:

答案 0 :(得分:13)

我得到了Apple技术支持部门的回复:

  

我正在回答您关于应用内购买的问题   产品预检过程现在失败的问题。答案   Tech Note 2259 - “添加应用内购买”中记录了此问题   到您的iOS应用程序“。   http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

     

在常见问题部分中,列出了以下原因   问题

     

为什么我的产品标识符会被返回   invalidProductIdentifiers数组?您的商品标识符可能是   在invalidProductIdentifiers数组中返回一个或多个   原因如下:

     

您未完成所有财务要求(请参阅   本文件的“合同,税收和银行信息”部分)。   您没有使用显式的App ID。您没有使用配置   与您的显式应用ID相关联的配置文件你没有使用   在您的代码中更正产品标识符。参见技术Q& A,QA1329,   “在应用程序购买产品标识符”中有关的更多信息   产品标识符。您没有清除您的In App Purchase产品   在iTunes Connect中出售。您可能已修改过您的产品,但是   这些更改尚未可用于所有App Store服务器。如果   您或App Review在iTunes Connect中拒绝了您最近的二进制文件。

     

请注意最后一个原因 - 适用于您的情况。解决方案是 -   当你想测试应用程序时,你需要“暂时”   将您的应用程序副本上传到iTunesConnect以便   申请状态不再“被拒绝”。相反,它将在   “待审核”状态。来吧,执行任何测试你   需要,然后假设应用程序仍然需要工作,自我拒绝   应用程序,以便它不会达到应用程序审查。在某些时候,你   将有一个成品,你将最终提交   正式申请。

在我的案例中,这种回应并不完全正确。我收到了应用审核小组的单独回复。简单地上传新二进制文件显然不会重置应用内购买项目的“被拒绝”状态。显然他们必须自己手动重置(此时我相信他们和我都可以测试它)。所以目前我已经上传了我的新二进制文件,但他们还没有重置应用内购买项目。

当流程完成后,我会在这篇文章中添加更多内容......