I’m unable to retrieve a newly configured auto-renewable subscription from the Apple Sandbox environment. Product information
- Bundle ID: com.reynaga.Imoox
- Product ID: com.reynaga.Imoox.subscription.monthly
- Subscription status: Prepare for Submission
- Price: USD 1.99 per month
- Introductory offer: one-week free trial
Result The app requests the product using StoreKit 2: let products = try await Product.products( for: ["com.reynaga.Imoox.subscription.monthly"] ) The request doesn’t throw an error, but the returned products array is empty. I also tested with SKProductsRequest. The Sandbox response is: Valid products: [] Invalid product identifiers: ["com.reynaga.Imoox.subscription.monthly"] Configuration already verified
- The Bundle ID and Product ID match App Store Connect exactly.
- The app uses an explicit App ID, not a wildcard.
- In-App Purchase is enabled for the App ID.
- The development certificate and provisioning profile are valid.
- There is no StoreKit Configuration file active in the Run scheme.
- The Apple Developer Program membership is active.
- The Paid Applications Agreement is active.
- Banking and all required tax forms show an Active status.
- The subscription has a price, localizations, tax category, and availability.
- Mexico and the United States are included in its availability.
- The Sandbox Apple Account belongs to the same developer team.
- The app is development-signed and installed from Xcode 26.2 on a physical iPhone.
- I signed out and back into the Sandbox account, deleted and reinstalled the app, restarted the device, and cleaned the Xcode build.
- The issue has persisted well beyond the documented metadata propagation period.
Apple Developer Support reviewed the administrative configuration and referred me to the Developer Forums. According to Apple’s documentation, an In-App Purchase doesn’t require prior App Review approval to work in Sandbox. Could an Apple StoreKit or App Store Connect Commerce engineer verify whether the app-to-subscription catalog association is correctly provisioned in Sandbox and refresh or reprocess it if necessary?