iOS/iPhone:应用程序内购买沙箱被破坏,而应用程序处于“被拒绝”状态状态?

发布于 2024-11-28 08:37:33 字数 1162 浏览 1 评论 0原文

(请参阅下面的主要内容,跳到我的问题的主要内容。)

我的 iOS 应用程序在 Apple 审核过程中被拒绝,原因很简单,但很容易修复。

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

现在,应用程序在初次检索产品信息时崩溃了。以前从来没有出现过这样的崩溃情况,自从我们多次成功测试沙盒模式的内购以来,代码也没有改变过。 (事实上​​,在最初提交的版本和这个带有小修复的版本之间根本没有代码发生变化;修复只是 info.plist 设置更改。)

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

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

我的问题的 MAIN THRUST

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

所以:我需要了解,当我的应用程序(及其相关的应用程序内购买)处于“拒绝”状态等待我上传新的二进制文件时,重新测试应用程序内是否很棘手(或者可能不可能)购买,我最好的做法就是重新提交应用程序并进行较小的修复,并相信(因为它与正常测试期间未处于拒绝状态时工作的代码相同)应用程序内的状态一旦苹果购买就会自行解决重置一切以测试新的二进制文件。

或者此时我应该做一些不同的事情来让我重新测试应用内购买?

我本来想在 iTunesConnect 信件中询问 Apple,但我不想给他们带来任何麻烦,因为到目前为止,审核过程非常快速和高效。

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

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

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

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 of my question:

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

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?

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月下伊人醉 2024-12-05 08:37:33

我收到了苹果技术支持的回复:

我正在回答您下面有关应用内购买的问题,并且
产品预检流程现在失败的问题。答案是
此问题记录在技术说明 2259 - “在应用程序购买中添加
到您的 iOS 应用程序”。
http://developer.apple.com/library/ios/#technotes /tn2259/_index.html

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

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

您没有完成所有财务要求(请参阅
本文档的“合同、税务和银行信息”部分)。
您没有使用明确的应用程序 ID。您没有使用配置
与您的显式应用程序 ID 关联的个人资料。您没有使用
代码中的正确产品标识符。请参阅技术问答、QA1329、
“应用内购买产品标识符”了解更多信息
产品标识符。您没有清除您的应用内购买产品
在 iTunes Connect 中出售。您可能修改了您的产品,但是
这些更改尚未适用于所有 App Store 服务器。如果
您或 App Review 拒绝了您在 iTunes Connect 中最新的二进制文件。

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

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

该过程完成后,我将在这篇文章中添加更多内容......

I got a reply from Apple tech support on this:

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

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:

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.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文