Ran*_*rns 5 localization in-app-purchase ios skproduct swift
在将方案设置为另一种语言的情况下运行应用程序不会影响测试中从 iTunes 收到的 SKProduct。我\xe2\x80\x99发现影响更改的唯一方法是在 iTunes Connect 中为您可能想要测试的每种...每种...语言创建一个新的沙盒测试用户。
\n\n然后 - 您不应该通过“设置”在您的设备上使用该用户登录。运行您的应用程序并在询问时使用测试用户登录。
\n\n这成功地让我的手机默认使用不同国家/地区的应用商店。
\n\n但是,当我将每个 SKProduct\xe2\x80\x99s .localizedTitle、.localizedDescription 和 .price 打印到控制台时,只有价格被转换为不同的国家/地区\xe2\x80\x99s 数字。标题和描述仍然是英文(I\xe2\x80\x99m 在美国开发)。所有语言均在 iTunes Connect 中设置。
\n\n当我点击购买应用内商品时,系统弹出的窗口是英文:“确认您的应用内购买”,然后是“您想以 ___ 购买一个 ____ 吗?” “取消”和“购买”按钮均为英文。第一个空白由我在 iTunes Connect 中设置的显示名称填充。但仍然使用英文版本。第二个空白处填写价格,该价格以测试用户商店的语言显示。[单独问题:日语显示日元符号和价格。西班牙显示欧元符号和价格。墨西哥显示美元符号和比索价格。]
\n\n因此,只有价格适用于我的沙盒测试者帐户。有人知道如何在测试期间获得不同国家\xe2\x80\x99s 语言的标题吗?我不仅想确保它对于我本地化应用程序的每个国家/地区的人们来说都是正确的,我\xe2\x80\x99d 喜欢将 SKProducts\' 标题设置为我的应用程序中按钮上的标签启动应用内购买。我可以通过 Localized.strings 文件设置这些,但更愿意从 SKProduct 中提取它,因为我已经通过 iTunes Connect 输入了该信息。
\n\n谢谢你的帮助!
\n这是我尽我所能所能弄清楚的。测试起来非常棘手...有时需要运行应用程序 3 或 4 次,并一遍又一遍地加载 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
Run Code Online (Sandbox Code Playgroud)