TestFlight: StoreKit returns CHN/CNY but purchase sheet shows USD

I see different storefronts in StoreKit product queries and Apple’s purchase sheet when testing through TestFlight. Xcode-installed builds work normally.

iPhone — iOS 26.6 (23G71), US Media & Purchases account

  • Both StoreKit 1 and StoreKit 2 return CHN/CNY.
  • The app displays CNY 128 for a non-consumable, but Apple’s sandbox purchase sheet shows USD 29.99 for the same product.
  • This reproduces in a standalone 177-line Swift sample using Product.displayPrice directly, with no third-party dependencies, currency conversion, or local .storekit configuration.
  • Reloading products and signing out of the sandbox account did not resolve it.

Mac Catalyst — macOS 26.3 (25D125), China purchase account

  • The original TestFlight app returns USA/USD.
  • Purchasing shows “Account Not In This Store” and asks to switch to China, although the purchase account is already set to China.
  • The Mac symptom has not yet been verified in the standalone sample.

Reproduction on the affected iPhone: install via TestFlight, load products and log Storefront.current plus the SK1 storefront, open the purchase sheet for the same product, then compare currencies. No completed purchase is needed. Built with Xcode 26.1 (17B55).

Has anyone found a workaround for this TestFlight-only mismatch? Should the app handle storefront updates differently, and which additional diagnostics would help distinguish a device/account-session issue from a StoreKit service issue?

Feedback: FB24873070. A focused sample and diagnostic evidence are prepared for Apple Developer Technical Support. Reproduction on other devices/accounts is not yet confirmed.

TestFlight: StoreKit returns CHN/CNY but purchase sheet shows USD
 
 
Q