我对IAP(沙盒)有一些奇怪的行为。起初我以为我犯了一个错误,但后来我用IAP加载了另一个项目(见图片),它显示了相同的行为。在我的应用程序中,我提供购买升级的可能性。我用户按下“购买”按钮,会弹出一个警告视图,询问用户是否想要以1,99欧元购买升级版。如果用户想要这样,则开始购买过程并弹出另一个警报视图,这是对购买的确认。但这个确认显示另一个价格(€2,34)。有谁知道为什么会这样?
提前致谢!
答案 0 :(得分:0)
第二个弹出窗口中的信息是正确的。而你最初显示的弹出窗口有一些无效的信息。价格1.99实际上是美元价格。并且''符号必须由您在字符串中连接。
这是因为两个原因:
SKProduct
price
属性的价格为美元。SKProduct
price
的{{1}}财产将具有该国家/地区的价格。您可以格式化适用于每个国家/地区的字符串。这是一个代码片段,可以为您创建这样的字符串。
public extension SKProduct {
public var localizedPrice: String? {
let numberFormatter = NumberFormatter()
numberFormatter.locale = self.priceLocale
numberFormatter.numberStyle = .currency
return numberFormatter.string(from: self.price)
}
}
您现在可以在localizedPrice
对象上使用SKProduct
属性而无需自己编写。