사용자 로캘의 국가 코드를 가져 오는 방법은 작동하지만 사용자의 iTunes 저장소가 해당 로캘과 동일한 경우에만 작동합니다. 항상 그런 것은 아닙니다.
인앱 구매 항목을 만드는 경우 Apple StoreKit API를 사용하여 사용자의 실제 iTunes 환경이 해당 장치 로캘과 다른 경우에도 해당 국가를 확인할 수 있습니다. 나를 위해 일한 코드는 다음과 같습니다.
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:
[NSSet setWithObject: PRODUCT_ID]];
request.delegate = self;
[request start];
}
- (void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProducts = response.products;
for (SKProduct* product in myProducts) {
NSLocale* storeLocale = product.priceLocale;
storeCountry = (NSString*)CFLocaleGetValue((CFLocaleRef)storeLocale, kCFLocaleCountryCode);
NSLog(@"Store Country = %@", storeCountry);
}
[request release];
// If product request didn't work, fallback to user's device locale
if (storeCountry == nil) {
CFLocaleRef userLocaleRef = CFLocaleCopyCurrent();
storeCountry = (NSString*)CFLocaleGetValue(userLocaleRef, kCFLocaleCountryCode);
}
// Now we're ready to start creating URLs for the itunes store
[super start];
}
나에게 조금 늦은 파티이고, 나 자신을 지금 사용할 기회가 없을 것이다. 다른 사람이 이것이 실제로 작동하는지 확인한 다음 투표를 통해 투표를 얻을 수 있다면 답변으로 다시 표시하겠습니다. 오래 전 이었지만 지금은 StoreKit API가 그 당시에는 없었다고 확신합니다. – pms1969
이것은 작동합니다. 나는 같은 코드를 사용하지 않지만,'product.priceLocale'에서 iTunes Store 통화 코드를 읽는 아이디어는 확실히 작동합니다. – cheeesus
감사합니다.이 방법이 효과적입니다. –