Payal Maniyar
Payal Maniyar

Reputation: 4402

In-App Purchase returning 0 products and product identifiers as invalidProductIdentifier

I know this question is asked few times. I have tried all solution but still not succeed. Here is my issue:

In below lines of code I am getting response.products.count = 0 and getting product ids that I have entered as response.invalidProductIdentifiers.

func productsRequest(request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
    if response.products.count != 0 {
        for product in response.products {
            productsArray.append(product )
        }
    }
    else {
        print("There are no products.")
    }
    if response.invalidProductIdentifiers.count != 0 {
        print(response.invalidProductIdentifiers.description)
    }
}

Set up that I have done for IAP :

  1. In Xcode > Target > In-App Purchases is enabled.
  2. In profile I have enabled In-app-Purchase. and attached that profile with project.
  3. In iTunes Connect, created App and added product identifiers for IAP.
  4. BundleID is same in Xcode, apple developer portal and in iTunes connect.
  5. In iTunes Connect App status is "Prepare for submission" and status of In-App purchase are "Waiting for upload" . I have not uploaded binary on iTunes Connect yet.

iTunes Connect

iTunes Connect

Is there need to upload binary at iTunes Connect?

Is there anything I am missing?

Upvotes: 7

Views: 8053

Answers (5)

vomi
vomi

Reputation: 1163

I had the issue with all the above correctly configured. I found the solution from Apple Doc:

Important Do not use your test user account to sign in to the production environment. Doing so invalidates the test user account, and you can no longer use it.

  • Thus, ensure that in Xcode > Target > Signing&Capabilities: you are in development and not in production.
  • Create a new test user
  • Clean your Xcode build folder
  • Reboot
  • Test with the new user

Upvotes: 0

pkamb
pkamb

Reputation: 35052

The App Store may not recognize your product identifiers unless you have met the following criteria, as applicable:

https://developer.apple.com/documentation/storekit/skproductsresponse/1505985-invalidproductidentifiers

In my case it was:

Your app uses an explicit App ID.

During development I was using a different BundleID than the one declared in App Store Connect.

Upvotes: 1

pkamb
pkamb

Reputation: 35052

My In-App Purchase was in a "Missing Metadata" state, and thus Invalid:

How to set up in-app purchases ("Missing Metadata")

Upvotes: 0

KKRocks
KKRocks

Reputation: 8322

The contract for paid applications must be in effect in order to receive data about the in app purchases configured.

This worked for me. I had the exact same problem.

https://stackoverflow.com/a/2045064/3901620

Upvotes: 4

Cameron E
Cameron E

Reputation: 1869

If the products do not have Hosted Content, you need to turn it off so that they exit the "Waiting for Upload" state.

Upvotes: 1

Related Questions