Post

Replies

Boosts

Views

Activity

Reply to SKPaymentQueue.default().storefront?.countryCode returns "USA" only in TestFlight
Update — confirmed with additional diagnostics Since posting, we added temporary diagnostic logging to the app and reproduced the issue on the affected device. Sharing the findings in case they help others hitting the same problem, and to add data for Apple's investigation: Both the legacy API and StoreKit 2 return the same wrong value We logged SKPaymentQueue.default().storefront (StoreKit 1) and await Storefront.current (StoreKit 2) side by side, at the same point in the app, on the same TestFlight build/session: StoreKit 1: countryCode = USA, identifier = 143462 StoreKit 2: countryCode = USA, identifier = 143462 So this is not limited to the deprecated API — Storefront.current shows the identical wrong result on the affected device. The storefront identifier is correct; only countryCode is wrong 143462 is Apple's storefront identifier for Japan (JP) — and it matches exactly what a normal, unaffected device on the same build reports. So the storefront the device is actually associated with is correctly Japan. Only the countryCode string field is wrong (USA instead of JPN), on both APIs, at the same time. This produces real USD product data, not just a wrong label SKProduct.priceLocale / Product (StoreKit 2) for the same product IDs come back with currency = USD, locale = en_US@currency=USD, e.g. a subscription priced at price = 10.99, localizedPrice = "$10.99". On an unaffected device with the same build, the same product IDs return currency = JPY, localizedPrice = "¥1,200". So this isn't only a diagnostic-field oddity — the product catalog itself is being resolved against the wrong storefront, and the app displays USD as a direct consequence. Environment Affected device: iOS 18.7.2, TestFlight build Unaffected device (same build, same app version): correct JPN / JPY on both APIs Both the "Media & Purchase" Apple Account and the App Store Connect sandbox tester are set to Japan and have not been changed Related report This looks consistent with another open report: Storefront Country Code Inaccuracy on iOS 18 (thread 787109) (https://developer.apple.com/forums/thread/787109), which describes the same iOS 18+ regression across both StoreKit 1 and StoreKit 2, and references FB20541419 for a similar case (French account unexpectedly returning the US storefront). We're happy to share full diagnostic logs (product IDs, prices, storefront identifiers/country codes at each step from product fetch through purchase sheet) if that would help Apple engineering reproduce this.
2d
Reply to SKPaymentQueue.default().storefront?.countryCode returns "USA" only in TestFlight
Related Reports & Support Cases Apple Developer Support Case: 20000146075908
Replies
Boosts
Views
Activity
2d
Reply to SKPaymentQueue.default().storefront?.countryCode returns "USA" only in TestFlight
Update — confirmed with additional diagnostics Since posting, we added temporary diagnostic logging to the app and reproduced the issue on the affected device. Sharing the findings in case they help others hitting the same problem, and to add data for Apple's investigation: Both the legacy API and StoreKit 2 return the same wrong value We logged SKPaymentQueue.default().storefront (StoreKit 1) and await Storefront.current (StoreKit 2) side by side, at the same point in the app, on the same TestFlight build/session: StoreKit 1: countryCode = USA, identifier = 143462 StoreKit 2: countryCode = USA, identifier = 143462 So this is not limited to the deprecated API — Storefront.current shows the identical wrong result on the affected device. The storefront identifier is correct; only countryCode is wrong 143462 is Apple's storefront identifier for Japan (JP) — and it matches exactly what a normal, unaffected device on the same build reports. So the storefront the device is actually associated with is correctly Japan. Only the countryCode string field is wrong (USA instead of JPN), on both APIs, at the same time. This produces real USD product data, not just a wrong label SKProduct.priceLocale / Product (StoreKit 2) for the same product IDs come back with currency = USD, locale = en_US@currency=USD, e.g. a subscription priced at price = 10.99, localizedPrice = "$10.99". On an unaffected device with the same build, the same product IDs return currency = JPY, localizedPrice = "¥1,200". So this isn't only a diagnostic-field oddity — the product catalog itself is being resolved against the wrong storefront, and the app displays USD as a direct consequence. Environment Affected device: iOS 18.7.2, TestFlight build Unaffected device (same build, same app version): correct JPN / JPY on both APIs Both the "Media & Purchase" Apple Account and the App Store Connect sandbox tester are set to Japan and have not been changed Related report This looks consistent with another open report: Storefront Country Code Inaccuracy on iOS 18 (thread 787109) (https://developer.apple.com/forums/thread/787109), which describes the same iOS 18+ regression across both StoreKit 1 and StoreKit 2, and references FB20541419 for a similar case (French account unexpectedly returning the US storefront). We're happy to share full diagnostic logs (product IDs, prices, storefront identifiers/country codes at each step from product fetch through purchase sheet) if that would help Apple engineering reproduce this.
Replies
Boosts
Views
Activity
2d