测试本地化应用内购买

5
将应用程序的方案设置为另一种语言不会影响从测试中接收到的来自iTunes的SKProduct。我发现影响变化的唯一方法是在iTunes Connect中创建一个新的沙盒测试用户,每个...和每个...您可能想要测试的语言都有一个iTunes Store。
然后 - 您不应该通过设置在设备上使用该用户进行登录。运行您的应用并在被询问时使用测试用户进行登录。
这成功地使我的手机默认为另一个国家/地区的App Store。
但是,当我打印每个SKProduct的.localizedTitle,.localizedDescription和.price时,只有价格被翻译成了不同国家/地区的数字。标题和描述仍然是英文(我正在美国开发)。所有语言都在iTunes Connect中设置好了。
当我点击购买应用内购买时,系统弹出窗口是英文的:“确认您的应用内购买”,然后是“您是否想购买一个___的___?”以及“取消”和“购买”按钮都是英文的。第一个空格由我在iTunes Connect中设置的显示名称填充。但它仍在使用英文版本。第二个空格填充的是价格,它显示为测试用户存储的语言。[单独的问题:日语显示日元符号和价格。西班牙显示欧元符号和价格。墨西哥显示带有比索价格的美元符号。]
因此,只有价格能够在我的沙盒测试账户中翻译。有人知道如何在测试期间获得不同国家/地区的语言标题吗?我不仅想确保它对我本地化应用程序的每个国家/地区的用户都看起来正确,而且我还想将SKProducts的标题设置为启动应用内购买的按钮上的标签。我可以通过Localizable.strings文件设置这些内容,但更愿意从SKProduct中提取它,因为我已经通过iTunes Connect输入了这些信息。
感谢任何帮助!

1
嘿,感谢你的问题。这为我节省了很多时间。你创建新沙盒用户的想法在仅测试其他语言环境时非常棒。非常感谢! - ostap_holub
2个回答

4

根据我的能力,我已经想到了一些解决方案。这个问题比较棘手,测试起来有些困难......有时需要运行应用程序3或4次,并反复加载SKProducts列表,才能将localizedDescription更改为我要测试的语言。

我试图弄清楚这些是否由使用创建在另一个国家设置iTunes Store的沙盒测试用户登录控制?还是由iPhone设置中选择的语言控制?

SKProduct的.price、SKProduct的.localizedTitle、SKProduct的.localizedDescription和系统弹出窗口"Do you want to buy one ____ for ___?" / "Cancel" / "Buy"

我认为,要正确获取每种语言的所有值,您需要同时更改手机的系统语言并且使用为该国的应用商店创建的沙盒测试用户进行登录。

为了填充我的按钮文本,我执行了以下操作:

let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.locale = productName.priceLocale
let cost = formatter.stringFromNumber(productName.price)!
labelForButton = "\(cost) " + productName.localizedDescription

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接