I have followed examples of how to create in-app purchases from several different sources. I have built a simple app that should simply retrieve a list of available SKProduct objects, and the app is told that zero products are available.
- I have created a valid app ID for my app at developer.apple.com
- I have created an app listing at appstoreconnect.apple.com with the correct valid app ID
- I have created in-app product entries for that app
- I have added those product entries into the App Store app information page
- I have saved all this information
- I have created an iPhone app using the app ID from step 1
- I have implemented the code required to request the products, supplying the correct product identifiers into the SKProductsRequest
Expected Result: SKProductsRequestDelegate callback productsRequest:request:response: delivers an SKProductsResponse object that contains an array of SKProduct objects representing the In-App Purchase product entries setup in appstoreconnect.apple.com
Actual Result: The SKProductsResponse object contains a zero-length array of SKProduct objects. It contains a list of invalid identifiers which are the ones noted in step 7 and are identical to the identifiers as created in step 3.
The in-app product entries created in step 3 have "Product ID" values similar to this: com.myDomainName.product_001
I have supplied the following Product ID variations to the SKProductsRequest:
All variants return the same response: zero-length array of SKProduct objects, and a list of invalid identifiers (the ones used to create the SKProductsRequest).
I'm at a loss to understand what is going wrong.
Note: I have not uploaded a binary of my app to appstoreconnect.apple.com. None of the examples I've read (primary, Ray Wenderlich's tutorial by Pietro Rea updated 2018-07-25) even remotely suggest that doing so is necessary, and it seems overkill to go through any Apple review process just to test whether the StoreKit operations I'm doing are going to work.