iOS / iPhone:当应用程序处于“拒绝”状态时,应用内购买沙箱损坏州? [英] iOS/iPhone: in-app purchase sandbox broken while app in "rejected" state?

查看:107
本文介绍了iOS / iPhone:当应用程序处于“拒绝”状态时,应用内购买沙箱损坏州?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

(See MAIN THRUST below to skip to the main thrust of my question.)

我的iOS应用在Apple评论中被拒绝这个过程很容易解决。

My iOS app was rejected in the Apple review process for a minor reason that was easy to fix.

但是,我想给新版本进行一次性测试,包括重新测试我们的应用内购买(那里)在应用程序中只是一个可购买的项目。

However, I wanted to give the new build a once-over testing, including retesting our in-app purchase (there is only a single purchasable item in the app).

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

And now the app crashes when doing the initial retrieval of the product information. It never crashed in this way before, and the code hasn't changed since we successfully tested the in-app purchase in sandbox mode many times. (In fact, no code changed at all between the initially submitted version and this version with the minor fix; the fix was just an info.plist setting change.)

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

To complicate matters, I'm using the Airplay/Marmalade SDK for building the app, and they wrap the Objective C calls and callback mechanism with their own API and callback mechanism. However, this wrapper is very thin, so I hope/believe that this is really a general iOS/in-app purchase question, not something specific to Marmalade.

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

So, as I say, it's crashing somewhere between the time I make the Marmalade call to retrieve product information and the time my (C++) callback should be called. (I.e., somewhere between the time that Marmalade calls [productsRequest start] on an SKProductsRequest object, and the time productsRequest:didReceiveResponse() is called and Marmalade calls me back in turn.)

MAIN THRUST 我的问题:

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

My app is in "rejected" state on iTunesConnect. Furthermore, when I look at the in-app purchase item itself in iTunesConnect, it's also marked as "Rejected". However, I've already discussed my in-app purchase with Apple during the review process, and it is my belief that the in-app purchase itself works fine for them, and the only remaining problem was the minor issue that I've already fixed (this is what their rejection details said: just that one item).

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

So: I need to understand whether, when my app (and its associated in-app purchase) are in this "rejected" state pending a new binary upload from me, it's tricky (or maybe impossible) to re-test the in-app purchase, and my best course of action is just to resubmit the app with the minor fix and have faith that (since it's the same code that worked during normal testing when things weren't in the rejected state) the state of the in-app purchase will work itself out once Apple resets everything to test the new binary.

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

Or is there something different I should do at this point that would allow me to re-test the in-app purchase?

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

I was thinking of asking Apple in the iTunesConnect correspondence, but I didn't want to introduce any complications with them, since the review process has been amazingly fast and efficient so far.

推荐答案

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

I got a reply from Apple tech support on this:


我正在回应你的以下关于应用内购买的问题和
产品预检过程现在失败的问题。这个问题的答案是
这个问题记录在技术说明2259中 - 在app app中添加
到您的iOS应用程序。
http://developer.apple.com/library/ ios / #technotes / tn2259 / _index.html

在常见问题解答部分中,列出了此
问题的原因列表

In the FAQ section there is the following list of reasons for this issue

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

Why are my product identifiers being returned in the invalidProductIdentifiers array? Your product identifiers may be returned in the invalidProductIdentifiers array for one or more of the following reasons:

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

You did not complete all the financial requirements (see the "Contracts, Tax, and Banking Information" section of this document). You did not use an explicit App ID. You did not use the Provisioning Profile associated with your explicit App ID. You did not use the correct product identifier in your code. See Technical Q&A, QA1329, 'In App Purchase Product Identifiers' for more information about product identifiers. You did not clear your In App Purchase products for sale in iTunes Connect. You might have modified your products, but these changes are not yet available to all the App Store servers. If you or App Review rejected your most recent binary in iTunes Connect.

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

Note the last reason - which applies in your case. The solution is - when you want to test the application, you will need to "temporarily" upload a copy of your application to iTunesConnect so that the application state is no longer "rejected". Instead it will be in the "pending review" state. Go ahead and perform whatever testing you need, then assuming the application still needs work, self reject the application so that it doesn't reach app review. At some point, you will have a finished product and you will finally submit the application formally.

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

That response wasn't totally correct in my case. I got a separate reply from the app review team. Simply uploading a new binary apparently does not reset the "rejected" state of the in-app purchase item. Apparently they have to manually reset that themselves (at which time I believe both they and I can test it). So currently I have my new binary uploaded but they haven't reset the in-app purchase item yet.

我会在流程完成时为此帖添加更多内容......

I'll add more to this post when the process is complete...

这篇关于iOS / iPhone:当应用程序处于“拒绝”状态时,应用内购买沙箱损坏州?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆