I’ve re-visited this same blog post again and again at least 10 times since I started iOS developing, every time with different answer, to save me search time in the future, I quoted the list here and added my 2 cents for how to solve invalid-product-id problem.
List from Troy:
- Have you enabled In-App Purchases for your App ID?
- Have you checked Cleared for Sale for your product?
- Have you submitted (and optionally rejected) your application binary? (I don’t think this is necessary, in fact, after you submit, you can add new product into the app anymore)
- Does your project’s .plist Bundle ID match your App ID? (This is what I got today, App ID and bundle ID were created by another guy)
- Have you generated and installed a new provisioning profile for the new App ID? (got me 2 times)
- Have you configured your project to code sign using this new provisioning profile? (got me 1 time)
- Are you building for iPhone OS 3.0 or above?
- Are you using the full product ID when when making an
SKProductRequest? (got me 1 time)
- Have you waited several hours since adding your product to iTunes Connect? (got me 1 time)
- Are your bank details active on iTunes Connect? (via Mark)
- Have you tried deleting the app from your device and reinstalling? (via Hector, S3B, Alex O, Joe, and Alberto) (This solved my problem 3 times)
- Is your device jailbroken? If so, you need to revert the jailbreak for IAP to work. (via oh my god, Roman, and xfze)
- Test listing product from simulator first, then move on to device. Ensure product id is OK.
- Uninstall can fix the problem happened on device most of time.
- Delay on new created product happens, at least to me 2 times, but not always, check your local settings carefully following the list above.
- Once old product id being removed, the new product id still can not conflict with the old id, it’s a soft delete in Apple’s system.
- Don’t bother auto-renewable subscription product, unless your are building a newsstand/magazine app.
- Don’t be too greedy on consumable in-app purchase product, start small, you can add big one in later version. Apple is very strict on those coin-like products.