web-dev-qa-db-fra.com

WidgetCenter introuvable dans la portée

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?

5
Taylor Johnson

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
}
1
Vlad Pulichev