priceLocale在访问时抛出EXC_BREAKPOINT

时间:2018-11-06 09:47:09

标签: ios swift skproduct swiftystorekit

我们在应用程序上使用介绍价格。而且,只有在我们的两个质量检查设备之一(法国App Store上的iPhone 6S(11.4.1))上存在可复制的问题。另一个是iPhone 7(法语应用商店中为12.0),该应用未崩溃。

我们正在基于SwiftyStoreKit提供的SKProduct扩展使用此扩展:

@available(iOS 11.2, *)
public extension SKProductDiscount {

    public var localizedPrice: String? {
        return priceFormatter(locale: priceLocale).string(from: price)
    }

    private func priceFormatter(locale: Locale) -> NumberFormatter {
        let formatter = NumberFormatter()
        formatter.locale = locale
        formatter.numberStyle = .currency
        return formatter
    }
}

这样使用:

func updateWith(storeProducts: Set<SKProduct>) {
guard
    let selfStoreInfo = storeProducts.filter({ $0.productIdentifier == self.id }).first else {
        Logger.warn(message: "Subscription \(self.id) not found on store", .inAppPurchase)
    return
}

if #available(iOS 11.2, *) {
    if let promo = selfStoreInfo.introductoryPrice {
        promotionId = selfStoreInfo.productIdentifier
        price = promo.localizedPrice
        originalPrice = selfStoreInfo.localizedPrice
    } else {
        price = selfStoreInfo.localizedPrice
    }
} else {
    price = selfStoreInfo.localizedPrice
}
}

调试时,我们发现priceLocale负责引发EXC_BREAKPOINT

编辑可以链接到此:https://bugs.swift.org/browse/SR-7922?attachmentOrder=desc,但奇怪的是,它可以在我们的iPhone 7上运行,而不能在iPhone 6s上运行

0 个答案:

没有答案