iOS/iPhone:应用内购买沙盒在应用处于"rejected"状态时损坏?



(参见下面的主旨直接跳到我问题的主旨)

我的iOS应用在苹果的审核过程中因为一个小原因被拒绝了,这个小原因很容易解决。

然而,我想给新构建一次全面测试,包括重新测试我们的应用内购买(应用中只有一个可购买的道具)。

现在应用程序在初始检索产品信息时崩溃了。它之前从未以这种方式崩溃过,自从我们在沙盒模式下多次成功测试应用内购买后,代码就没有改变过。(事实上,在最初提交的版本和这个带有小修复的版本之间没有任何代码更改;修复只是一个信息。列表设置更改

更复杂的是,我使用Airplay/Marmalade SDK来构建应用程序,他们用自己的API和回调机制包装了Objective C调用和回调机制。然而,这个包装非常薄,所以我希望/相信这真的是一个一般的iOS/应用内购买问题,而不是Marmalade特有的问题。

所以,正如我所说的,它在我调用Marmalade来检索产品信息和我的(c++)回调应该被调用的时间之间的某个地方崩溃了。(即,在Marmalade调用SKProductsRequest对象上的[productsRequest start]的时间和调用productsRequest: didreceiverresponse()的时间之间的某个地方,Marmalade依次调用我。)

主推力我的问题:

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

:我需要了解,当我的应用(及其相关的应用内购买)处于这种"拒绝"状态,等待我上传新的二进制文件时,重新测试应用内购买是否很棘手(或者可能不可能)。我最好的做法是重新提交带有小修复的应用,并相信一旦苹果重置一切以测试新的二进制文件,应用内购买的状态将自行解决(因为它是在正常测试中工作的代码,当东西没有处于拒绝状态时)。

或者我现在是否应该做一些不同的事情,让我重新测试应用内购买?

我想在iTunesConnect的通信中询问苹果,但我不想给他们带来任何麻烦,因为到目前为止,审查过程已经非常快速和有效了。

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

我是在回答你下面关于在应用程序中购买和产品预飞行过程现在失败的问题。的答案此问题记录在技术说明2259 -"添加应用程序购买到你的iOS应用程序"。http://developer.apple.com/library/ios/技术说明/tn2259 _index.html

在FAQ部分中有以下原因列表问题

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

您没有完成所有的财务要求(参见"合同、税务和银行信息"部分)。您没有使用明确的应用程序ID。您没有使用配置与您的显式应用程序ID关联的配置文件。你没有使用代码中正确的产品标识符。见技术问题A, QA1329;在App Purchase Product Identifiers中获取更多关于产品标识符。你没有清除应用内购买产品在iTunes Connect中出售。你可能修改了你的产品,但是这些变化尚未适用于所有App Store服务器。如果你或App Review拒绝了你在iTunes Connect中的最新二进制文件。

注意最后一个原因——它适用于你的情况。解决方案是——当您想要测试应用程序时,您将需要"临时"上传你的应用程序的副本到iTunesConnect,以便应用状态不再是"拒绝"。相反,它会在"待审"状态。继续进行测试吧需要,则假定申请仍需工作,自行拒绝应用程序,这样它就不会到达应用审查。在某种程度上,你将有一个成品,你将最终提交应用程序正式。

在我的情况下,这种反应并不完全正确。我从应用审查团队那里得到了一个单独的回复。简单地上传一个新的二进制文件显然不会重置应用内购买项目的"拒绝"状态。显然他们必须自己手动重置(那时我相信他们和我都可以测试它)。所以目前我已经上传了新的二进制文件,但是他们还没有重置应用内购买项。

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

最新更新