IOS failed Initialization NoProductsAvailable but works on Android

I've created a unity app with in app purchases following this guide https://unity3d.com/learn/tutorials/topics/ads-analytics/integrating-unity-iap-your-game

It works perfectly on android but doesn't work at all on IOS and i have used the same bundle id and product ids on both stores.



The error that i get on IOS is : "InizializationFailureReasom: NoProductsAvailable."



Here are the things that i've done:

- Created an App ID on the apple developer portal with the correct capabilities (In-App Purchase)

- I have enabled the correct capabilities on the xcode project (In-App Purchase)

- I am using testflight to submit the app with a distribution certificate that appears to be valid

- I've checked the the bundle identifier and it's the same everywhere (unity project, xcode project, App ID)

- The productd ids are also correct both in the code and on the itunes connect portal

- All of the products are cleared for sale and are in the status "ready to submit"

- The administrator of my team has filled all of the tax and banking information required for in app purchase on itunesconnect

- I always uninstall the old app version before testing the new one

- We are also using sandbox users to test purchases but I have read that it shouldn't be needed anymore because we are using test flight



I suspect that it has to do with certificates/provisioning profile that I am using or the permissions of the developer account used to upload the build.


The account that I am using on apple.developer.com has the "admin" privileges.


With this account i have created a "iOS Certificate" for "production" and I have included it to the keychain.

I've also created a "iOS Provisioning Profile" for "distribution" and included it into the keychain.


I think I am using the correct provision/certificate on xcode but when I am finished building it always says the certificate is "Unknown" and the profile is "None" (i have xcode 10.1)



Is there anything that i am doing wrong? Is the status "ready to submit" good for the products? Or do i need to submit the products for review even if i am only testing?

Your message "InizializationFailureReasom: NoProductsAvailable." is not an iOS message it is a Unity message. Figure out from unity what it means.

it's not really a unity error it's a store error , also i have already asked at the unity forum and they told me to ask here
And as i said it works on android with the same exact settings/build

The error message you quote does not come from the App Store or iOS. It comes from the unity software. The unity software is generating this message because it received a different error message from the App Store. Unity folks should be able to tell you why unity generated this particular language.


There are many reasons why IAP might not be working. The error messages help you narrow down the choices.


Have you tested the IAP using a device connected to a computer running Xcode and getting the code installed directly on the device. If not, can you explain why not?


You wrote

"We are also using sandbox users to test purchases but I have read that it shouldn't be needed anymore because we are using test flight"

If a user installs the app through TestFlight they should use their normal real production environment username and password that is associated with the device and was used to download TestFlight from the App Store. TestFlight clones that username and password into an equivalent 'sandbox test user' for use in TestFliight IAP purchases.

I know it's a unity error, but the error on the xcode console said pretty much the same thing (i don't have access to the mac right now, i can give you the exact error later)



"Have you tested the IAP using a device connected to a computer running Xcode and getting the code installed directly on the device. If not, can you explain why not?"


I have read somewhere that to test IAP you have to use testflight or an apple store relase. Is that incorrect? What problem would it solve by running directly into the device? Would it give more information about the error?

You can test IAP by running the code in Xcode on a device attached to the computer. You can add "NSLog" commands and follow the process as each individual method is called. Debugging code is complex. If you do not have experience you need to find a developer.

Have you filled the 'Agreement, Tax, Banking' Form For Paid Apps?

  • Go to AppStore Connect
  • Agreement, Tax, Banking
  • Click on the Paid Apps And Fill The Details Accordingly

Hello I do have the same problem with the initialization of the IAPs, but the only thing different is that us have not fill the bank and taxes information. This info is neccessarly to test the IAPs inside testflight?

IOS failed Initialization NoProductsAvailable but works on Android
 
 
Q