【发布时间】:2020-10-16 09:08:25
【问题描述】:
我正在使用 SwiftyStoreKit 在我的应用程序中处理 IAP。问题是 IAP 产品的价格将始终以美元货币显示,如下所示:9.99 美元。无论人们在哪个国家/地区测试应用。
我正在尝试更改模拟器中的区域设置,例如 this(在方案编辑窗口中)。当 Locale.current 显示更改的区域设置时,使用自定义位置也不会给我另一种货币。
两个都试试:
- SwiftyStoreKit 的
product.localizedPrice -
直接来自产品对象(localizedPrice 实际上是 SKProduct 的扩展)
let numberFormatter = NumberFormatter() numberFormatter.numberStyle = .currency numberFormatter.locale = product.priceLocale let price = numberFormatter.string(from: product.price)丹麦或日本的价格仍然是 9.99 美元
我是否在项目属性中缺少一些神奇的语言环境设置?
- 沙盒或生产,不会有任何影响
- 当 IAP 弹出窗口出现时,货币是正确的,但在应用程序本身中不正确
- 在项目中使用一堆其他 Pod,例如 Sentry 和 Beacon
【问题讨论】:
-
嘿,@Sh_Khan,是的,在我的问题中指出了这一点
-
跟踪定义 product.priceLocale 的代码行。
-
好吧,注释掉 numberFormatter.locale = product.priceLocale 成功了,但为什么呢? product.priceLocale 在当前国家/地区的本地返回值不应该正确吗?
-
@Sh_Khan,删除
numberFormatter.locale实际上没有按预期工作。货币符号已更改,但价格仍以美元为单位
标签: ios swift in-app-purchase