Warning: join(): Invalid arguments passed in /home/troyb/troybrant.net/blog/wp-content/themes/hybrid-hacked/hybrid-hacked/library/functions/breadcrumbs.php on line 79

Invalid Product IDs

Do you have an invalid product ID that won’t go away? Good thing the StoreKit API provides error codes and detailed error information explaining why the ID is invalid.

Oh, what’s that? There are no error codes or error details of any kind when you have an invalid product ID, you say? Bah, silly me.

To save you the pain of exhaustively searching the web for the cause of your error, here is a checklist of everything I have stumbled across that can cause an invalid product ID. Make sure you can answer “Yes” to each of these questions:

  • 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?
  • Does your project’s .plist Bundle ID match your App ID?
  • Have you generated and installed a new provisioning profile for the new App ID?
  • Have you configured your project to code sign using this new 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)
  • Have you tried deleting the app from your device and reinstalling? (via Hector, S3B, Alex O, Joe, and Alberto)
  • Is your device jailbroken? If so, you need to revert the jailbreak for IAP to work. (via oh my god, Roman, and xfze)

If you answered “No” to any one of these questions, there’s your problem.

If you answered “Yes” for each of these questions and you still have an invalid product ID, then you have a problem I haven’t seen before. Check out the links in the next section, several of which are Developer Forum posts that were especially helpful in my hunt for debugging invalid product IDs.

Resources for Debugging an Invalid Product

Here are the docs and resources I used to debug invalid product IDs:

If your solution for invalid product IDs wasn’t mentioned in the checklist above, please leave a comment detailing how you fixed the problem so I can keep the checklist up to date.

155 Responses to “Invalid Product IDs”

  1. I meant in the ID field of the product!

  2. THANKYOU!!!
    I needed to remove the App off my device and reinstall from scratch.
    You saved me hours of head scratching!!
    Cheers

  3. You are a life saver. After going through it over and over again..I finally got In-App purchases working..It’s not even my first attempt at it because I did it for a previous App!

  4. thanks for your summarizing. and sharing. Great.

  5. [...] Are your bank details active on iTunes Connect? (via Mark) [...]

  6. You are a live saver, seems uploading the binary did the trick, (worked in the ios 5 simulator, but not device)

  7. where i can see my bank details on iTunes? and if they are not active then where i should submit them?

  8. com.myco.appname.product did not work, only needed the ‘product’ bit.

  9. > Have you tried deleting the app from your device and reinstalling?

    No but after I did it began to work. Thank you so much for the list as I thought I had it all covered.

  10. Same as Kvaran, deleted from device and all works fine. DUDE YOUR AMAZING FOR DOING THIS LIST, SAVED SO MUCH TROUBLE!! :D :D:D:D

  11. Jailbreak was my problem..

    Excellent article though.. made sure i was covering up other aspects.

    Much thanks… you definitely saved many people a lot of time and frustration.

  12. [...] If you haven’t already, take a look at Troy Brandt’s exhaustive list of invalid product ID issues. [...]

  13. I stumbled on another thing that can seem obvious, but you need to add your in app products to your application details (in itunes connect) before submitting it.

    Thanks for this very usefull checklist.

  14. Troy,

    Your blog has been awesome on all of this. Thank you very much. If I can offer my 1 finding:

    I was trying
    [NSSet setWithObject:@"com.metal-sole.slider.all50"]
    and it was failing (over and over… ug). Then I decided to try every variation in one:
    [NSSet setWithObjects:@"com.metal-sole.slider.all50", @"com.metal-sole.slider", @"all50", nil ];
    and it was the last one that worked! Somehow the “full productID” thing was what was killing me. Not sure.

    Thanks again though. Your help has been simply AWESOME.

    -M@

  15. Non of the above worked for me.

    What was even stranger, is that it worked on my iPhone, but not on my iPad – and I’ve tried removing the app and reinstalling.

    What solved it was – RESTARTING MY DEVICE, lol.

  16. [...] re-visited this same blog post again and again at least 10 times since I started iOS developing, every time with different answer, [...]

  17. Deleting the old app worked also for me. Thanks for the hint!

    But I have one question:
    What happens when I bring my update to the App-Store. Will all the users be forced to remove the old app and re-install the new one before they would be able to do an In-App-Purchase?

    Thanks

  18. Thanks for putting this list together! I got IAP working initially–without uploading the binary to iTunes Connect, and even working on the simulator. However, I got a new provisioning profile to do an ad hoc build and that messed up IAP completely. Eventually I found this page and the thing that fixed it for me was deleting and reinstalling the app.

  19. [...] Invalid Product IDs [...]

  20. Thank you thank you thank you – I can’t believe after trying all sorts of things all I had to do was uninstall and re-install the app to my device.

    CRAZY

  21. Another possible cause

    - If you’re app is pending developer release, in-app purchases will fail until you make the app live.

  22. My issue was I didn’t have the Paid Contract in effect. In order to do so, I had to enter contact, bank, & tax info. That fixed it for me!

  23. Invalid Product ID for IAP.

    I create one free app and under 3 in app purchase product id. but getting error all time invalid product id.

    - enabled In-App Purchases for your App ID.
    - checked Cleared for Sale for your product.
    - app submitted for your application binary.
    - Project’s .plist Bundle ID match same as App ID.
    - Generate new provisioning profile for the new App ID.
    - Project code sign using this new provisioning profile.
    - xoce proejct iOS 5.0
    - Given full product id when i making an SKProductRequest.
    - i wait several hours since adding your product to iTunes Connect.

    Ok all the things but error invalid procut id. but Why invalid product id?
    help me?

  24. [...] in your console window. However, you are more than likely getting back an invalid product ID. My next post addresses exactly how to go about debugging this problem, but the very next section may in fact [...]

  25. Thanks Troy, great list.

    You iPhone CAN still be jailbroken while testing IAP, but you MUST uninstall/remove AppSync in Cydia. AppSync is the program that allows iPhone to run non-provisioned app – so having it installed messes with the IAP sandbox testing system.

    BTW, In the Apple guidelines for IAP they clearly say that you do NOT have to upload binary for IAP to work: “No. Testing In-App Purchase does not require uploading a binary.”

    Check out their guide, its quite helpful, been updated recently
    http://developer.apple.com/library/mac/#technotes/tn2259/_index.html

    I’m pretty sure you still have to press: “Ready to Upload Binary” in iTC.

  26. I’m impressed, I must say. Really rarely do I encounter a web site that’s both educative and fulfilling, and let me tell you, you have hit the nail on the head. Your idea is outstanding ; the issue is something that not enough people are talking intelligently about. I am very happy that I happened across this.

  27. There is one thing that has been explained on another post I guess, but not on this list.

    Which is we have to Sign Out from the Store in the Settings app, I signed out and product Ids become valid.

  28. [...] This just does not return response i’ve done all here http://troybrant.net/blog/2010/01/invalid-product-ids/ [...]

  29. Hi
    I have done all item in inAppPurchase tutorials completely however I can test on iOS Simulator version 5 but I could not try to test on “jailbreak” device ,which I have been removed appsync.
    I got the Invalid ProductID and I could not access to dev forum of apple because of Create New ID loop.
    What I must do to test and Debug successfully on device?

  30. [...] 这个文章讲述了当productId 失效的原因。 http://troybrant.net/blog/2010/01/invalid-product-ids/ [...]

  31. Get the information and thank you very much for visiting our website.

  32. Hey. You should mention that you don’t need to submit an IAP to Apple if you don’ t check the box saying “Host Content With Apple” when setting it up.

  33. Same as Duncan:
    com.myco.appname.product did not work, only needed the ‘product’ bit.

  34. Yep, looks like something has changed. Perhaps you should make a note on the IAP walkthrough. Would not work until I removed the com.companyname.appname and kept only the product identifier.

    —-Didn’t Work:

    com.companyname.appname.myupgrade

    —-Worked instantly:

    myupgrade

  35. I believe that my solution has been clear ALL the certificates and make them again.

  36. Certificates AND provisioning profiles…

  37. Another bullet for the list. I was experiencing the issue where the product ID was nil on one iOS device, but worked just fine on the other. I tried build cleaning, (un/re)installing the app… was very perplexed until someone suggested I restart the device (power off/on) and that did the trick. Please add this to the list. And thanks a lot for this awesome post!

  38. Reseting the device and signing out from store in iPhone did the trick for me! thanks a lot!!!

  39. Thank you for visiting our website.

  40. Thanks for the great posts and visit our site.

  41. Thanks for the great posts and visit our site.

  42. Thank you and welcome to our website.

  43. 0222222

  44. facebook

  45. Thank you for comment. I hope that you will visit some of our websites. Website are always welcome.

  46. Thank you for comment. I hope that you will visit some of our websites. Website are always welcome.

  47. Disabled AppSync. Did the trick.

Leave a Reply