我正在使用SwiftyStoreKit处理我的应用中的IAP。问题是,IAP产品的价格将始终以美元货币显示,像这样:9.99美元。无论在哪个国家/地区,人们都对该应用程序进行测试。
我正在尝试在模拟器中更改语言环境,例如this(在方案编辑窗口中)。当Locale.current显示更改的语言环境时,使用自定义位置也不会给我其他货币。
同时尝试:
product.localizedPrice
直接来自产品对象(localizedPrice实际上是SKProduct的扩展)
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
numberFormatter.locale = product.priceLocale
let price = numberFormatter.string(from: product.price)
在丹麦或日本的价格仍为9.99美元
我在项目属性中缺少某些不可思议的语言环境设置吗?
答案 0 :(得分:2)
自iOS 12开始,沙盒帐户的处理方式有所不同。当您从Xcode运行开发版本时,该应用会在您开始购买时提示输入假的沙盒AppleID。首次登录后,该应用将知道正确的语言环境,因此可以显示适合您的应用内购买的价格。在此之前,它将始终以美元显示价格。
答案 1 :(得分:0)
价格和价格区域设置由购买帐户的商店关联而不是设备区域设置决定。
即拥有与美国商店相关联的帐户的人总是会看到$ US,因为这是他们的收费方式,无论他们身在何处或设备所在的地区。
要测试价格的国际化,您将需要使用具有适当App Store地区的沙盒测试仪。
如果您在使用沙盒测试仪登录之前运行该应用程序,则默认情况下您会看到$ US的价格。另外,请注意,您不能真正在模拟器中测试IAP。您需要使用真实的设备。