iOS/iPhone:应用内购买沙盒在“拒绝"中的应用程序中被破坏;状态? [英] iOS/iPhone: in-app purchase sandbox broken while app in "rejected" state?

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

问题描述

(请参阅下面的主要推力以跳到我问题的主要推力.)

(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.)

更复杂的是,我使用 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.)

我的问题的主要推力:

我的应用在 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 -添加应用程序购买到您的 iOS 应用程序".http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

I'm responding to your question below regarding in app purchase and the issue where the product preflight process now fails. The answer to this issue is documented in Tech Note 2259 - "Adding in app purchase to your iOS application". 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.您没有使用 Provisioning与您的显式 App ID 关联的配置文件.你没有使用代码中的正确产品标识符.参见技术问答,QA1329,应用内购买产品标识符"了解更多信息产品标识符.您没有清除您的应用内购买产品在 iTunes Connect 中出售.您可能已经修改了您的产品,但是并非所有 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天全站免登陆