TestFlight: StoreKit 1 and 2 return USD prices, but purchase sheet shows JPY

I'm investigating a price/currency mismatch in a TestFlight app.

Environment:

  • iPhone 15, iOS 26.6.2
  • App version 0.4.2 (Build 47), distributed through TestFlight
  • Consumable product ID: line_stamp_8pack_1980
  • Diagnostic comparison: October 5, 2026, at 11:22:47 JST (UTC+09:00)

For the same product, all three product lookup paths returned price 11.99, currency USD, and display price $11.99:

  • StoreKit 1: SKProductsRequest / SKProduct
  • StoreKit 2: Product.products(for:)
  • expo-iap: fetchProducts

The direct StoreKit calls were made through native Swift diagnostics in the app. All three lookups succeeded without errors.

StoreKit 2 reported storefront country USA and ID 143462 before and after its lookup. expo-iap also reported USA before and after its lookup.

StoreKit 1's storefront was unavailable before its request. Afterward, it reported USA, with storefront identifier "143462-9,29". Our diagnostic initially labeled this as a storefront change, but an unavailable-to-available result does not establish an actual country change.

During the same testing session, Apple's purchase confirmation sheet for this product displayed ¥1,980 and stated that the purchase was for testing only. I canceled the sheet without completing the purchase.

The Media & Purchases account's country/region is Japan. App Store Connect pricing for this product is ¥1,980 in Japan and $11.99 in the United States.

What could cause the product lookup APIs to return the US storefront price while the purchase confirmation sheet displays the Japanese price?

What additional diagnostics should I collect to identify the cause and obtain a product price consistent with the purchase sheet?

Thank you.

TestFlight: StoreKit 1 and 2 return USD prices, but purchase sheet shows JPY
 
 
Q