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
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect API
Tags:
StoreKit
App Store Connect
Subscriptions
In-App Purchase
0
0
25