Je construis une application iOS pour iOS 10+. L'application construit une amende dans la configuration de débogage, mais dans la libération ne parvient pas à compiler Swift code source qui références WidgetCenter
.
Il génère l'erreur Cannot find WidgetCenter in scope
Même si j'importe WidgetKit
et éventuellement incorporer le cadre.
import Foundation
import WidgetKit
class MyWidgetCenter: NSObject {
@available(iOS 14, *)
func reloadTimelines(_ kind: String) {
// this line causes error: cannot find 'WidgetCenter' in scope
WidgetCenter.shared.reloadTimelines(ofKind: kind)
}
@available(iOS 14, *)
func reloadAllTimelines() {
// this line causes error: cannot find 'WidgetCenter' in scope
WidgetCenter.shared.reloadAllTimelines()
}
}
Modifier: il construit bien pour le simulateur et mon périphérique connecté (iPhone XR) dans la configuration de libération lorsque je définit le Build Active Architecture Only
drapeau. Ce n'est que lorsqu'il est en construction pour plusieurs architectures qu'il ne compile pas. Existe-t-il des restrictions d'architecture pour WidgetKit
que je ne comptabilise pas?
Dans mon cas, je n'ai à vérifier que pour arm64
.
@available(iOS 14, *)
@objc public func reloadWidget() {
// Compiler error fix. Arm64 - current 64-bit ARM CPU architecture,
// as used since the iPhone 5S and later (6, 6S, SE and 7),
// the iPad Air, Air 2 and Pro, with the A7 and later chips.
#if Arch(arm64)
WidgetCenter.shared.reloadAllTimelines()
#endif
}