International In-app-purchase issue with TestFlight build

My app's in-app purchase works perfectly (i) locally (ii) in TestFlight internal testing (iii) in TestFlight external testing in the US.

Where's the issue? Well I have one beta tester (TestFlight external tester) in the Philippines. She is unable to purchase. Her Apple ID region and device region are set to Philippines. My IAP has all regions and territories enabled and I can see the Philippine Peso pricing on App Store Connect.

She keeps seeing the price in USD rather than PHP, which, based on my searching around, seems to be common in TestFlight. But, she also keeps getting an error "Account Not In This Store - Your account is not valid for use in the US Store. You must switch to the Philippine store before purchasing". Clicking on "Change Store" doesn't help. From searching, it seems despite seeing the price in $ she ought to be able to complete the fake purchase.

Is this expected in TestFlight? I am apprehensive before submitting my app for final approval if there are going to be issues in purchasing internationally. The code is StoreKit2's product.purchase() - it's opaque to developers, and Apple is supposed to handle it correctly. Not sure what else I can do as far as the code goes.

I have successfully been able to view pricing in dollars, euros, and Philippine Peso by setting the storefront to the US, Germany, and Philippines in a local Storekit config file on an iOS simulator. So I am kind of confident that it is a TestFlight issue, but it feels weird to say something like 'ah it's a TestFlight issue, it'll work in production' :) Ideally TestFlight should be identical to production. Shouldn't it?

I am waiting on another international tester (this one is in Brazil) to get another data point.

Has anybody encountered something similar to this before? Also, any pointers for writing an automated UI test for this? What API / sample code etc.?

Answered by ambidextrous in 878426022

FWIW, the Brazilian tester was able to view the pricing in Brazilian Real and was able to complete the purchase too, same build, no code change. So, yeah, must be TestFlight's problem. Posting in case it helps someone with a similar issue.

Accepted Answer

FWIW, the Brazilian tester was able to view the pricing in Brazilian Real and was able to complete the purchase too, same build, no code change. So, yeah, must be TestFlight's problem. Posting in case it helps someone with a similar issue.

International In-app-purchase issue with TestFlight build
 
 
Q