iOS iTunes App Store Sandbox에서 내 앱을 테스트 할 때 이상한 문제가 발생했습니다. 두 개의 개발자 테스트 계정 (iTunes Connect를 통해 설정)이 있습니다. 하나는 영국 상점을 사용하고 다른 하나는 우크라이나 상점을 사용하도록 설정되어 있습니다.iOS : 테스트 사용자를위한 잘못된 통화 반환
앱이 실행되면 SKProductsRequest를 통해 사용 가능한 IAP 항목 목록을 가져옵니다. ('자기'는 SKProduct의 인스턴스를 참조하므로,이 SKProduct의 범주로 구현 된) 그런 다음, 다음 코드를 사용하여 품목 가격을 표시
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setLocale:self.priceLocale];
return [currencyFormatter stringFromNumber:self.price];
를 지금까지 내가 알고,이 꽤 많이 이 작업을위한 Apple의 권장 코드. 그리고 영국 내 스토어 계정을 사용하여 인앱 구매를 테스트하면 모든 것이 정상적으로 작동하며 가격은 파운드로 표시됩니다. 그러나 Ukranian 테스트 계정을 사용하면 가격이 Ukranian hyrvnia가 아닌 미국 달러로 표시됩니다. 조금 더이에 찾고
, 나는 디버그 콘솔에서 priceLocale 속성 중 일부를 인쇄했는데, 다음과 같이NSLog(@"PriceLocale country Code: %@, localeIdentifier %@", , [self.priceLocale objectForKey:NSLocaleCountryCode], [self.priceLocale localeIdentifier]);
출력되는되었습니다
PriceLocale country Code: UA, localIdentifier [email protected]=USD
최대 읽기 로캘 식별자에서 @ 기호는 특정 설정을 무시하도록 로캘을 수정하는 데 사용되며,이 경우 통화가 USD로 설정되어있는 것으로 보입니다. 문제는, 나는 왜 일을 할 수없는 것입니다. 누구든지 그 문제가 무엇인지에 대해 조언을 해 줄 수 있습니까?
내가 와서 그게 내가 결국 발견 무엇으로 해결로 답을 표시 실제로해야 - 그것이 비록 유용한 링크입니다, 건배! – eggboxderek