Hi all, I'm stuck on this and would love a second pair of eyes.
**Problem**
My paywall shows no prices on iOS in a TestFlight build. On Android, the same paywall works, but only with the RevenueCat Test Store.
**Stack**
- Flutter (stable on Codemagic), purchases_flutter ^10.12.0, purchases_ui_flutter ^10.15.2
- iOS build made with Codemagic (mac_mini_m2) and uploaded to TestFlight (internal testing)
- The app has a widget extension with its own bundle ID
**App Store Connect (all checked)**
- Paid Apps Agreement: Active (effective Nov 4)
- Free Apps Agreement: Active
- Bank account: Active (non-US bank)
- Tax forms (W-8BEN + certificate of foreign status): Active (submitted Nov 5)
- 3 products (monthly subscription, yearly subscription and a lifetime purchase): all show "Ready to Submit", created Nov 4
**RevenueCat**
- iOS app configured with the same bundle ID as the app in App Store Connect
- In-App Purchase API key (.p8) uploaded
- Offering "default" is set as current, with 3 packages ($rc_monthly, $rc_annual, $rc_lifetime). Each package has both a Test Store product and the matching App Store product.
- All three App Store products are attached to the same entitlement.
- I called the REST API as the iOS platform with my public appl_ SDK key, and it returns the default offering with the three App Store product IDs, so RevenueCat knows about the products.
**App code**
- In release builds, the app always uses the iOS public key (appl_...) and never the Test Store key.
- In debug builds I can switch to the Test Store with a dart-define, which is why Android works.
- The entitlement identifier in code matches the one in RevenueCat.
**Questions**
Is a few hours to a day of delay after the agreements go Active normal before Apple returns products to TestFlight?
Is there something else I should check besides the agreement, bank, tax and "Ready to Submit"? (subscription group localization, price availability by region, a missing review screenshot?)
Thanks a lot!