StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR

Hello,

We would appreciate some guidance regarding an unexpected StoreKit currency result in a TestFlight build.

Our iPhone language and region are both set to France. The Sandbox tester is also configured for France, and our subscription products have French availability and pricing configured in App Store Connect.

In the TestFlight build we diagnosed, StoreKit reports the current storefront as France with EUR:

storefront=FRA/143442/EUR

However, all 10 subscription products are returned with USD product metadata:

products=10/10
formatCurrencies=USD
localeCurrencies=USD
error=NONE

Example:

formatCurrency=USD
locale=fr_US_currency_USD
localeCurrency=USD
display=1,99 $US
price=1.99

We first observed this through Flutter's in_app_purchase integration. To determine whether the Flutter plugin was involved, we added a native StoreKit 2 diagnostic to the same TestFlight build. The native result was identical:

receipt=sandboxReceipt
storefront before=FRA/143442/EUR
storefront after=FRA/143442/EUR
products=10/10
formatCurrencies=USD
localeCurrencies=USD
error=NONE

The issue appears specific to the TestFlight distribution. When the application is installed directly from the development computer, prices are returned in euros on the same device.

We also tested with the regular Media & Purchases account signed out and a French Sandbox tester connected. Once the products loaded successfully, StoreKit still returned USD metadata.

In another configuration, the application displayed the USD price while Apple's purchase sheet displayed the price in euros.

We are using the price and formatting information returned directly by StoreKit. We do not want to infer the currency from the device region or perform a client-side currency conversion, because StoreKit should remain the authoritative source.

Could you please help us understand:

  1. Is it expected for Storefront.current to report FRA/EUR while Product.priceFormatStyle.currencyCode, its locale currency, and Product.displayPrice use USD?
  2. Could a TestFlight or App Store Connect configuration cause product metadata to use a different currency from the current storefront?
  3. Is there another account, availability, pricing or distribution setting that we should verify?
  4. Is there a recommended way to refresh or invalidate the product metadata used by a TestFlight installation?

We have already filed Feedback Assistant report FB24723329, which is currently under investigation.

Thank you very much for any clarification or additional diagnostic steps you can suggest.

StoreKit 2 returns USD product metadata in TestFlight while the storefront is FRA/EUR
 
 
Q