TestFlight returns USA storefront and USD prices while Xcode builds return JPN/JPY

I am seeing different StoreKit storefronts and localized prices between a direct Xcode installation and TestFlight on the same iPhone.

Environment:

  • App: CountAdd
  • iPhone 15 Pro
  • In-App Purchases: non-consumable
  • App Store Connect base country/region for IAP pricing: Japan (JPY)
  • Japan is enabled for app and IAP availability

Results on the same device with the same app code:

Xcode Debug:

  • Storefront: JPN
  • Prices: JPY

Xcode Release:

  • Storefront: JPN
  • Prices: JPY (¥250 / ¥1,250 / ¥2,500)

TestFlight Build 10:

  • Storefront: USA
  • Prices returned/displayed by StoreKit: USD ($1.99 / $7.99 / $14.99)

Using macOS Console with the physical device connected, I confirmed that the TestFlight build logs:

Storefront updated to ... countryCode: "USA"

For the Xcode Release build, the same device reports:

countryCode: "JPN"

I also deleted the TestFlight app and reinstalled Build 10 to eliminate local app data as a possible cause. The issue remained: TestFlight returned USA/USD.

The Sandbox Apple Account is configured for Japan.

In some tests, although the app displays the StoreKit product price in USD, Apple's purchase confirmation sheet displays the price in JPY.

I am not manually converting or hardcoding prices. The app displays the localized product price returned by StoreKit.

I have already reported this through Feedback Assistant: FB25014147

I also contacted Apple Developer Support: Case 102983767864

Developer Support advised that they cannot investigate technical issues involving Sandbox IAP testing and directed me to Feedback Assistant.

My main questions are:

  1. Is it expected or a known issue for a TestFlight/Sandbox build to receive a USA storefront and USD product metadata while a direct Xcode build on the same device receives JPN/JPY?

  2. More importantly, can this TestFlight/Sandbox behavior affect the production App Store version? When a user in Japan installs the production app from the App Store, should StoreKit return the Japanese storefront and JPY localized prices?

I am trying to determine whether it is safe to submit/release the app without implementing any manual currency conversion or hardcoded pricing.