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