SKProductsRequest always returns as USD not local currency

I have a totally odd situation where the SKProducts in the received SKProductRequest are always in USD, where in my own case they should be GBP. I've confirmed this with a friend who has a UK iTunes account and is also seeing USD.


The local currency should just be set automatically right? I don't see where I can have any control over this.

Answered by digitalheaven in 96489022

Yes I'm already creating the string like that but the problem was that the MAS was not returning the correct currency (it only returns one). This was on both production and development builds.


So I did some more testing and noticed it was working correctly on both my 10.8 and 10.9 VMs, neither of which I had used my iTunes Test User (which is $). Almost by accident I managed to fix the problem by signing out of the MAS, then signing in again. Now I get the expected currency of GBP on both the production build and my current development build.

Is this in the sandbox or in production? I believe a test user (sandbox) or a real user (production) specifies their country and the price is quoted in that currency. Check the country that was entered into the account.

Oh, I see. You are referring to [[response.products objectAtIndex:0] price].... You need to convert it to local currency this way for a set of products:

  NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
  [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
  [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
  [numberFormatter setLocale:[[response.products objectAtIndex:0] priceLocale]];
  productButtons=[[NSMutableArray alloc] init];  /
  int buttonCounter;
  for (buttonCounter=0; buttonCounter<count; buttonCounter++) {
      [productButtons addObject:
            [[[response.products objectAtIndex:buttonCounter] localizedDescription]//  the description in correct language
              stringByAppendingFormat:@" %@",
            [numberFormatter stringFromNumber:[[response.products objectAtIndex:buttonCounter] price]]]//the price in correct currency
          ];
      [productButtons addObject:[response.products objectAtIndex:buttonCounter]]; // after user selects button, send this back in purchaseRequest
  }
Accepted Answer

Yes I'm already creating the string like that but the problem was that the MAS was not returning the correct currency (it only returns one). This was on both production and development builds.


So I did some more testing and noticed it was working correctly on both my 10.8 and 10.9 VMs, neither of which I had used my iTunes Test User (which is $). Almost by accident I managed to fix the problem by signing out of the MAS, then signing in again. Now I get the expected currency of GBP on both the production build and my current development build.

SKProductsRequest always returns as USD not local currency
 
 
Q