I'm having issues with StoreKit 2 when trying to load my auto-renewable subscriptions on a physical device via TestFlight. It works perfectly in the simulator using a local .storekit configuration file, but when I install the app through TestFlight, StoreKit does not return any products at all. Instead, I get the error:
"Storefront not available" What I've Tried:
✅ In-App Purchases are enabled on my device.
✅ Using a sandbox account (confirmed logged in under Settings > Developer > Sandbox Account).
✅ The app is signed correctly with automatic signing in Xcode.
✅ The product IDs are correct (they work in the simulator with the local StoreKit file).
✅ I enabled SK2DebugLogging, but I don't see detailed errors.
✅ Restarted the device and signed out/in of my sandbox account.
✅ Checked that the App Store region matches my sandbox account’s region.
✅ The app is not fetching products dynamically at all on a real device—just getting "storefront not available."
Additional Notes
The app is installed via TestFlight, not running in debug mode from Xcode. The app is signed in to the App Store with a real Apple ID (not the sandbox one). Apple confirmed that products don’t need to be "Ready for Sale" for sandbox testing. I checked the Console.app logs on my Mac, but nothing obvious showed up.
What I Need Help With
Why would StoreKit 2 fail to return products in TestFlight, but work fine in the simulator? What does "storefront not available" actually mean in this context? Any steps I might have missed to force StoreKit to fetch products properly? Any help would be greatly appreciated! 🚀