SKProductRequest return 0 product with production-signed app

Hi,


I have an iOS application which uses in-app purchases.

I have already set the environment for IAP:

  • Set all the Agreements Tax and Banking sections,
  • Created IAP products on iTunes connect
  • Turned on "In app purchases" in the capabilities tab
  • Implemented my code to retrieve the product list and to perform a purchase validating the receipt server-side

I have also tested all with a sandbox environment and all works as expected: the list of products is correctly received by the store I can purchase a product validating the corresponding receipt.

I have also tested the application using Testflight which creates automatically a sandbox user for all testers and all works as expected.

I submitted my application to the Apple store and the revision has been passed so that at the moment the application is in "Pending Developer Release" status, all the products have been approved.


In order to try an actual purchase (using a real credit card) I have generated a promo code with iTunes connect and I have installed the application on my iPhone. However, when using the application downloaded in this way I can't see any products in the IAP section of my application. It seems the application downloads an empty or invalid product list. The same application version works fine with Testflight. Is the use of promo code permitted with IAP? Why I can download a proper list of products only using a sandbox user? Since I can't debug my application, how can I find the problem?


I read here that the problem could be related to the provisioning profile, however I can't find a provisioning profile for my application since I have managed signing automatically with XCode. Should I create a provisioning profile manually?


Thank you in advance,

Replies

Hi Andrea, we have a similar problem. Were you able to solve it in the meantime?

If you have not released the app after it was reviewed and approved (as the OP stated) and waited 24-48 hours for App Store processing of IAPs after release, then there are no approved IAPs for the app in the production environment. It will work in TestFlight because TestFlight operates in the sandbox environment and all IAPs are available in the sandbox.