Hello,
I'm developing a consumer iOS app (Capacitor + RevenueCat SDK) and I've been blocked for several weeks on a StoreKit issue: subscription products are never returned to the device, so the Apple payment sheet cannot open.
I previously contacted Apple Support. I was told to request a phone call, but my call request was declined because of the topic (StoreKit / in-app purchases). I'm posting here hoping someone from Apple or the community can help.
App details
- App name: Vytal AI
- Bundle ID: com.ciborgu.vytalai
- App Store Connect App ID: 6767160542
- Team ID: JZF7CR3W8Z
- Distribution: TestFlight (physical iPhone, France)
- iOS deployment target: 15+
Subscription product IDs (auto-renewable)
- vytalai_premium_monthly
- vytalai_premium_yearly
- vytalai_premium_yearly_intro
All three are in subscription group "Vytal AI" on the correct ASC app (not a typo bundle). Cleared for Sale is ON. Paid Apps Agreement is active. In-App Purchase capability is enabled on the App ID (checkbox is grayed out / locked, which I understand is normal).
Problem
On a real device via TestFlight:
- RevenueCat SDK configures successfully (public iOS API key present in build).
- Purchases.getProducts({ productIdentifiers: [...] }) returns { products: [] } — zero products.
- Because StoreKit returns an empty array, the Sandbox payment sheet never appears when the user taps Subscribe.
This is NOT a UI issue — the native SDK call to Apple returns no products.
What I've already verified
- Bundle ID in signed IPA matches ASC app: com.ciborgu.vytalai
- Subscriptions exist only on the correct app (not on an old typo bundle com.ciborgue.vytalai)
- Removed duplicate ASC app; old App ID cannot be deleted ("in use by App Store") but has no IAPs
- Regenerated EAS provisioning profile for com.ciborgu.vytalai
- Sandbox tester account configured on device (Settings → App Store → Sandbox Account)
- Tested without VPN / iCloud Private Relay
- Reinstalled app from TestFlight after ASC changes
- Waited for propagation after metadata / availability updates
- Associated Domains enabled (for deep links) — separate from IAP
SDK / integration
- @revenuecat/purchases-capacitor 13.x
- Direct StoreKit fetch via Purchases.getProducts() (not only RevenueCat offerings)
- Same result: 0 products from Apple
Expected vs actual
- Expected: StoreKit returns 3 subscription products in Sandbox; payment sheet opens on purchase.
- Actual: products array is always empty; no payment sheet.
Questions
- Why would StoreKit return 0 products for valid auto-renewable subscriptions on TestFlight when metadata is "Waiting for Review" / in review — shouldn't Sandbox still return products per TN3186?
- Is there an ASC configuration state (availability, subscription group localization, missing review screenshot on yearly products, etc.) that causes StoreKit to return zero products even in Sandbox?
- Is there an internal flag or propagation delay on Apple's side I should ask to be reset for this app/bundle?
I'm happy to provide additional logs, a sysdiagnose, or a short screen recording from TestFlight showing the empty product response.
Thank you for any guidance — this is blocking App Review (Guideline 2.1) and I cannot test IAP at all.
Nathan