J'essaie d'ajouter une extension Today dans Swift à mon application Objective-C. Je continue à recevoir ce message dans mon journal de débogueur: Failed to inherit CoreMedia permissions from 3005: (null)
. Le nombre ex. 3005 est différent à chaque fois. Je lis depuis NSUserDefaults depuis le widget mais je lis/écris dans l'application elle-même. Le seul code de mon TodayViewController est le suivant:
override func viewDidLoad() {
super.viewDidLoad()
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
totalLabel.text = formatter.stringFromNumber(0)
coinsLabel.text = formatter.stringFromNumber(0)
formatter.maximumFractionDigits = 0
billsLabel.text = formatter.stringFromNumber(0)
}
func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
return UIEdgeInsetsMake(8.0, 16.0, 8.0, 16.0)
}
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResult.Failed
// If there's no update required, use NCUpdateResult.NoData
// If there's an update, use NCUpdateResult.NewData
completionHandler(NCUpdateResult.NewData)
}
Je pense que l'avertissement "Impossible d'hériter des autorisations CoreMedia de NNNN" est lié à Groupes d'applications lorsque vous créez une extension d'application. Votre application contenant et l'extension de votre application doivent activer la fonctionnalité Groupes d'applications et utiliser le même ID de conteneur de groupe d'applications (exemple: group.com.votredomaine.nom de votre app). Les groupes d'applications permettent aux applications multiples d'accéder à des conteneurs partagés et aux communications inter-processus supplémentaires entre les applications.
J'ai eu le même journal de sortie. Le nettoyage (Cmd + Shift + K)
l'a résolu pour moi.
Je rencontre aussi ce problème et la seule solution que j’ai résolue a été d’ajouter des contraintes verticales et horizontales pour chaque objet du storyboard.
Vérifier l’extension du tableau principal de aujourd’hui, viewcontroller avec l’option "Est-ce que le contrôleur de vue initial" est activé.
Après avoir fait la plupart des choses qui ont été mentionnées dans les réponses à cette question et avoir encore des erreurs avec le widget Today - j'ai trouvé quelque chose qui a fonctionné pour moi.
Ouvrez votre cible widget Configurer les paramètres et recherchez Toujours intégrer les bibliothèques Swift Standard . Sélectionnez Oui.
J'espère que cela fonctionne pour vous si rien d'autre n'a aidé
Cela me frappait car j'avais une méthode personnalisée consolidée init(nibName:bundle:coder:)
dans mon contrôleur de vue et j'avais implémenté initWithCoder
comme ceci pour satisfaire Swift:
required init?(coder aDecoder: NSCoder) {
self.init(nibName: nil, bundle: nil, coder: aDecoder)
}
J'ai résolu le problème en rendant cet appel d'implémentation super.init(coder:)
à la place:
required init?(coder aDecoder: NSCoder) {
// [...setting some variables...]
super.init(coder: aDecoder)
}
J'ai résolu mon cas en: Activez les groupes d'applications pour les applications conteneur et d'extension. Et supprimez tous les contrôles UIKit cachés en tant que UILabel, UIView, ...
J'ai rencontré ce problème aussi. Le problème pour moi était que je courais deux programmes à la fois sur mon simulateur. Après avoir arrêté l'un d'entre eux, le message d'erreur est parti. J'espère que ça aide.
J'ai eu le même problème lors de l'exécution de mon extension. Dans mon cas, cela a été résolu en exécutant l'extension dans le périphérique réel.
J'ai constaté que si vous utilisez un StoryBoard, vous devez accéder à info.plist et supprimer la propriété NSExtensionPrincipalClass
. Après cela, l'extension a commencé à se charger correctement.
Voici mon expérience avec ce message d'erreur. J'avais un storyboard avec 4 ViewControllers. J'ai fait un extrait de refactor sur chacun d'entre eux, donc maintenant j'ai 5 storyboards, dont 4 avaient des contrôleurs de vue et l'original, "principal", dont un ne contenait que des références de storyboard.
Eh bien ... c'est mauvais. Ne fais pas ça.
Tout a fonctionné lorsque j'ai conservé le story-board initial dans le fichier de story-board d'origine, de sorte que je n'en ai pas refactorisé un seul.