将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输入了这些信息。
感谢您的帮助!
答案 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的国家/地区”,然后您可以查看更改以及更改方式:
另请参阅我的回答: