2013-12-13 63 views
0

在iOS iTunes App Store沙盒中測試我的應用程序時遇到了一個奇怪的問題。我有兩個開發人員測試帳戶(通過iTunes Connect設置) - 一組使用英國商店,另一組使用烏克蘭商店。iOS:App Store沙箱爲測試用戶返回錯誤貨幣

當應用程序啓動時,它通過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爲此任務推薦的代碼。當我使用英國商店帳戶來測試我的應用內購買時,一切正常,價格以英鎊顯示。但是,當我使用烏克蘭測試賬戶時,價格以美元而非烏克蘭貨幣顯示。

展望這個遠一點,我想打印出一些在調試控制檯的priceLocale性質的,如下:

NSLog(@"PriceLocale country Code: %@, localeIdentifier %@", , [self.priceLocale objectForKey:NSLocaleCountryCode], [self.priceLocale localeIdentifier]); 

輸出從中:

PriceLocale country Code: UA, localIdentifier [email protected]=USD 

讀了在區域設置標識符看來,@符號用於修改區域設置以覆蓋某些設置,在這種情況下,似乎貨幣設置爲美元。事情是,我無法弄清楚爲什麼。任何人都可以就可能出現的問題提供任何建議,或者我可以如何進一步研究它?

回答

2

您的代碼沒問題,但目前無法在烏克蘭格里夫納的App Store中購買商品。烏克蘭的應用商店和許多其他國家以美元運營。請參閱下面的鏈接,瞭解使用美元的商店的完整列表。

App Stores where the US Dollar is the currency of sale

+0

我應該居然來標記爲解決答案,因爲這就是我最終發現 - 這是一個有益的聯繫,雖然,乾杯! – eggboxderek