In-App Purchase Tutorial: Auto-Renewable Subscriptions | Kodeco

Auto-renewable subscriptions provide a way of offering your users continuous access to your app’s renewing content – providing them with a great user experience and access to content they care about, and you with an appealing business model.

This is a companion discussion topic for the original entry at

A really great tutorial - however I’m having a couple of problems with running this on iOS 16.5.1 when compiling in Xcode 14.3.1

Firstly when running this on a tethered iPhone I get the following error:

***** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Call must be made on main thread'**

This is something to do with the alertController handler in so I’ve just commented this out.

Then the second issue is the IAPManager routine:

productsRequest = SKProductsRequest(productIdentifiers: productIDs)

  • it always returns a NIL value on products.

I’ve added the in AppStoreConnect, checked the naming, got the legal agreements, etc.

Any ideas? Many thanks!