In App Purchase setup and testing

I'm trying to setup an in-app purchase in iTunes connect, so I can run test purchases from a sandbox test iTunes account.

In order to do this, do I need to submit the screen-shot? iTunes connect seemed to be asking for this, and also, it seemed to be the case that I would need to upload a binary of my app too! I'm sure that can't be right..

You do not need to upload a screenshot or upload a binary. You don't have to mark it as ready until you're submitting, you can just create it. You can also go through the whole app creation process and just not upload a binary until you are ready, and make in-app purchase objects for it. Also keep in mind that (I'm pretty sure) you need to build an Ad-Hoc build to test in-app purchases.
Alex

Yes, you need to make a unique ID for each app that has IAP. This way you'd have something like com.mycompany.myapp, which will allow you to add a unique product ID for each IAP product like com.mycompany.myapp.myupgrade

It's been quite a long time now since I set up IAP, so this description might be off.

In iTunes Connect, when setting up IAP:

1) The reference name is exactly that; something like: Upgrade 1 or My Upgrade or whatever. The user never sees this.
2) Add the product ID, as mentioned above (e.g. com.mycompany.myapp.myupgrade)
3) Set the type to Non-Consumable. (assuming that's what you're doing)
4) Make certain that "Cleared for Sale" is checked.
5) Add a language. The Displayed Name and description here is what the user actually sees, like "My Fancy Upgrade" (no quotes).
6) There is supposed to be a screenshot of the purchase in action as part of the app approval process. For testing, you can probably just upload a dummy graphic if it really requires it, but for final submission you'll need the real deal.
7) After adding the purchase, there will be a green button in the upper right, to Approve it. Don't approve it yet, until it's been tested.

Testing the in-app purchase:

1) On the main page of iTunes Connect, click on Manage Users
2) Click In App Purchase Test User
3) Add New User
4) Fill out info. This is all mostly fake stuff to fit with their database scheme. Here's what you can try for your USA test user (the user has to be unique, so you can't reuse the email addresses, but I think you can reuse the password):

When you test on the device, be certain that you sign out of your real account in the device settings first. Then you can sign in with the test user. Do not attempt to use the test user for any other purchases and do not use your regular account for testing. Be very careful about this!

As I recall (memory is hazy here), you can test the purchase when deploying to the device from Xcode as a regular development build (i.e. Ad Hoc not required), but as I recall, you'll still need a binary uploaded to iTunes Connect. I think I just uploaded a dummy binary, which was an app that didn't do anything, since no one would be using it, but contained the specific app ID. The real deal is the one on your machine which you're testing in Xcode. When you're finished testing then you can upload that for approval to replace the dummy binary.

(Jun 24, 2011 08:54 AM)AnotherJake Wrote: ... or I may have easily misunderstood the docs.

Heh. Well, I'd say that's very easily done! They should be absolutely clear and consistent in their definitions, anything less, just adds to the confusion. For example; AppID consists of BundleSeed + BundleID. They should never refer to the BundleID part (on it's own), as being the AppID.

I'm getting other issues now; on my newer devices, I manage to get the product info back just fine; and also, getting back on an old original gen iPhone. Isn't working for me on a 2nd gen iPod touch though. I'm guessing it may be the fact that it's jail-broken; although the iPhone is too, and that works fine. Also, IAP in other apps, works fine on the jail-broken iPod touch.

Also, the BundleID of my app, is not exactly matching up with the product ID of my IAP products; yet it's still working.