测试本地化的应用内购买

时间:2016-06-05 03:17:35

标签: ios swift localization in-app-purchase skproduct

将Scheme设置为其他语言的应用程序运行不会影响测试中从iTunes收到的SKProduct。我发现影响变化的唯一方法是在iTunes iTunes中创建一个新的Sandbox Tester用户,用于每种......以及您可能想要测试的每种语言。

然后 - 您不应该通过“设置”在设备上登录该用户。运行您的应用程序并在询问时与测试用户一起登录。

这成功地将我的手机默认为另一个国家/地区的App Store。

但是,当我向控制台打印每个SKProduct的.localizedTitle,.localizedDescription和.price时 - 只有价格被转换为不同国家的号码。标题和描述仍然是英文(我在美国开发)。所有语言都在iTunes Connect中设置。

当我点击购买应用程序内容时,弹出的系统是英文:“确认你的应用程序内购买”,然后“你想为____购买一个____”和“取消”和“购买”按钮都是英文的。第一个空白由我在iTunes Connect中设置的显示名称填写。但它仍然使用英文版。第二个空白用价格填写,用测试用户商店的语言显示。 [单独的问题:日语显示日元符号和价格。西班牙显示欧元符号和价格。墨西哥用比索价格显示美元符号。]

因此,只有价格会转换为我的Sandbox Tester帐户。有谁知道如何在测试期间以不同国家的语言获得标题?我不仅希望确保每个国家/地区的用户都能看到我的应用本地化,我还想将SKProducts的标题设置为我应用中按钮上的标签,以启动应用内购买。我可以通过Localizable.strings文件设置这些,但是我更喜欢从SKProduct中提取它,因为我已经通过iTunes Connect输入了这些信息。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这是我能够尽我所能找到的东西。这是非常棘手的测试...有时需要运行应用程序3或4次并在localDescription将更改为我试图测试的语言之前反复加载SKProducts列表。

我试图弄清楚这些是否通过使用设置为另一个国家/地区的iTunes Store创建的沙盒测试用户登录来控制?或者通过“设置”中选择的iPhone语言

SKProduct的.price,SKProduct的.localizedTitle,SKProduct的.localizedDescription,系统弹出"你想为___购买一个____吗?" /"取消" /"购买"

在我看来,要正确获取每种语言的所有值,您需要同时更改手机的系统语言并使用为该国家/地区应用创建的沙盒测试用户登录存储。

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

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

答案 1 :(得分:0)

您是对的:更改Scheme的语言不会影响SKProduct。

转到更改“ App Store的国家/地区”,然后您可以查看更改以及更改方式:

  

https://apple.stackexchange.com/a/89186/283550

另请参阅我的回答:

  

https://stackoverflow.com/a/52418249/3260008