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