使用这个代码,是由苹果官方交给他们的文档:
extension SKProductDiscount {
var localizedPrice: String {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = self.priceLocale // Line #15 - this is where it crashes
return formatter.string(from: self.price) ?? ""
}
}
我有用户崩溃,根据Crashlytics,这是堆栈跟踪。
令我惊讶的是,这段代码中的所有内容都是StoreKit的。我试着换了不同的语言环境,但我找不到如何让这种崩溃发生。
顺便说一下,它发生在一个有免费入门的产品上。所以格式化的输出字符串是"[€,$,等]0.00"。
这到底是什么?static Locale._unconditionallyBridgeFromObjectiveC(_:)
导致崩溃?
这是苹果的一个bug,在iOS 12中已经修复。iOS 11的唯一选择就是不依赖这个动态本地化,而是依赖一些自制的逻辑......。