The big problem is that the interface for In App Purchases seems to change a lot. Here are the steps that worked for me on November 1, 2010:
- Create a new App ID in the Provisioning Portal
- Create a Development Provisioning Profile using the new AppID
- Create a new App in iTunes Connect. Enter the basic info but Do Not upload a binary. Do Not click the 'Ready to Upload Binary' button.
- Create an In App Purchase Product for the App. The status for the Product should be 'Approved by Developer'
- In iTunes Connect, return to the App Details and add your new In App Purchase Product to the In App Purchases section of the App Details.
- Run the project from XCode, using the Development Provisioning Profile you created.
I did this and it worked instantly - though you may need to wait for your In App Purchase Product to propogate through Apple's system.
Tips:
I used the code found in this tuorial:
http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/
Make sure your App ID is the base for your In App Purchase Product's ID
If your App ID is com.website.app
Your In App Purchase Product's ID should be com.website.app.productname
Make sure you have the AppID in your .plist file
The checklist on this page is helpful, though a bit outdated. http://troybrant.net/blog/2010/01/invalid-product-ids/
Here is an updated checklist:
Have you checked Cleared for Sale for your product?
Does your project’s .plist Bundle ID match your App ID?
Have you generated and installed a new Development Provisioning Profile for the new App ID?
Have you configured your project to code sign using this new Development Provisioning Profile ?
Are you building for iPhone OS 3.0 or above?
Are you using the full Product ID when when making an SKProductRequest?
Have you waited several hours since adding your product to iTunes Connect?
Are your bank details active on iTunes Connect? (via Mark)