I’m having an issue where my RevenueCat paywall works perfectly in the iOS Simulator, but fails to load on real devices via TestFlight. This is my first app and first time setting up in-app subscriptions.
What works
-
In the iOS Simulator, the paywall loads correctly.
-
All products appear and I can simulate purchases.
-
Product IDs match exactly between App Store Connect and RevenueCat.
-
The RevenueCat offering is active and includes the correct products.
What fails
-
On a real device using TestFlight, the paywall does not load.
-
RevenueCat returns a configuration error (Error 23 / products not found).
-
No products are returned from Apple in TestFlight.
App Store Connect setup
-
Subscriptions are created in App Store Connect and currently in “Ready to Submit” / “Waiting for Review” state.
-
I have accepted all agreements in App Store Connect (Paid Applications, Tax, Banking are active).
-
The subscription is attached to the current app version under In-App Purchases and Subscriptions.
-
This is my first app, and none of my subscriptions have ever been approved by Apple yet.
What I’ve tried
-
Uploading multiple new TestFlight builds.
-
Deleting the app from device and reinstalling TestFlight.
-
Creating new sandbox test users.
-
Deleting and recreating subscriptions (multiple times).
-
Verifying StoreKit configuration is set to
Nonefor TestFlight builds. -
Double-checking entitlements and offerings in RevenueCat.
Observations
-
The issue only happens on TestFlight / real devices.
-
Everything works in the simulator, which makes debugging confusing.
-
It seems Apple is returning zero valid products in the sandbox environment, even though the subscriptions exist and are configured.
Question
Is it required that at least one subscription must be fully approved by Apple App Review before RevenueCat (or StoreKit) can reliably return products in TestFlight?
If so, is this expected behavior for first-time apps, where TestFlight will fail until the first IAP is approved?


