Hello,
I’m investigating subscription product discovery in my iOS app, BiteTempo. StoreKit 2 completes the product request successfully but returns an empty array for both auto-renewable subscriptions.
The issue occurs on a physical iPhone running through Xcode and also in TestFlight.
App and products
- Bundle ID: shehan.NouriJournal
- App version: 1.0 (4)
- Monthly: shehan.NouriJournal.plus.monthly
- Annual: shehan.NouriJournal.plus.annual
- Reported storefront: USA
- Device system version reported in diagnostics: 26.6.1 (23G83)
Reproduction
- Run the app on a physical iPhone through Xcode with StoreKit Configuration set to None.
- Open the subscription paywall.
- Request both products using Product.products(for:).
- Inspect the returned array immediately after the awaited call, before filtering.
At that breakpoint, returnedProducts contains 0 values.
The empty result is not created by application filtering or by converting a caught error into an empty array. Errors are reported separately.
Diagnostic output from the Xcode device run
Date: 2026-09-26T10:06:24Z App: shehan.NouriJournal 1.0 (4) Storefront: USA Requested: shehan.NouriJournal.plus.monthly, shehan.NouriJournal.plus.annual Returned: 0 Products: Lookup: completed
I also see unavailable plans in TestFlight, although the diagnostic output above is specifically from the Xcode device run.
Configuration checked
- Product IDs match App Store Connect exactly.
- Both subscriptions have pricing and all-country availability.
- Both products and their subscription group have English (U.S.) localization.
- Paid Apps Agreement is Active.
- Other apps under my developer account have working live subscriptions.
- Debug and Release use the same bundle identifier and signing team.
- No local StoreKit configuration file is selected.
- A Sandbox Apple Account is signed in on the test device.
These are the first subscriptions for this app and have not yet been submitted for review. I have retried after completing the missing localization, but the result remains empty.
The failure occurs during product discovery, before any purchase or server-side transaction verification.
What additional checks or diagnostics would help distinguish an app/signing configuration issue from a sandbox product-catalog availability issue? Is there any additional product state or configuration required for these subscriptions to appear in sandbox?
I have also submitted a support request to Apple and can provide a minimal reproduction project through the appropriate support channel.
Thank you.