My iOS app has a single Subscription purchase. The in-app purchase flow works as expected in the TestFlight version of the app, however in the store version of the app the purchase flow does not work. The initial call using the SKProductsRequest method is returning the supplied product ID as invalid.
I have been over the various checklists of things to consider when receiving these invalid product identifiers (especially the points on https://developer.apple.com/documentation/storekit/skproductsresponse/1505985-invalidproductidentifiers) but I cannot see what I'm doing wrong.
Going through the items in Apple's list explicitly:
-
Agree to the latest Apple Developer Program License Agreement. > This is all done.
-
Complete all the financial agreements as described in the Agreements, Tax, and Banking Overview. When you renew your developer membership, see if you need to make updates to your agreements. When your developer membership expires, your financial agreements expire as well. > The 'Paid Apps' agreement is active. Tax Forms are submitted for the United States and Australia. Banking is set up for Australia. Legal entity is in use.
-
Your app uses an explicit App ID. > The app uses an explicit App ID.
-
Clear the in-app purchases for sale in App Store Connect. See Set availability for in-app purchase. > The subscription product shows in App Store Connect with a status of 'Approved' (green tick).
-
Modified in-app purchases are available to the App Store servers. > I'm not sure what this means?
-
The product identifier specified in App Store Connect matches the identifier used by the SKProductsRequest object in your app. > This is correct, as proven by the purchases working in the TestFlight build.
-
Upload the content of your product to App Store Connect. See Upload in-app purchase content to App Store Connect. > We are not hosting any content with our product (I don't believe this applies to Subscription products)
I've tried getting support from Apple, but it's like screaming into the void. Hoping that someone in on these forums will have some hints about ways to solve this.