Extension Today Impossible d’hériter les permissions CoreMedia de

J’essaie d’append 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 à partir de 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.ssortingngFromNumber(0) coinsLabel.text = formatter.ssortingngFromNumber(0) formatter.maximumFractionDigits = 0 billsLabel.text = formatter.ssortingngFromNumber(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 crois que l’avertissement «Échec de l’inheritance des permissions CoreMedia de NNNN» est lié aux groupes d’applications lorsque vous créez une extension d’application. Votre application contenant et votre extension d’application doivent toutes deux avoir la capacité App Groups activée et utiliser le même ID de conteneur de groupe d’applications (exemple: group.com.votredomaine.votreappname). Les groupes d’applications permettent à plusieurs applications d’accéder aux conteneurs partagés et permettent une communication interprocessus supplémentaire entre les applications.

Les capacités devraient ressembler à ceci

J’ai eu la même sortie de journal. Le nettoyage (Cmd + Shift + K) résolu pour moi.

D’abord, cliquez sur Assets.xcassets

Tout d'abord, cliquez sur Assetes.xcassets

Deuxièmement, cliquez sur Abonnement cible, cochez à la fois votre application et votre widget pour permettre au widget d’accéder à vos ressources.

Deuxièmement, cliquez sur Adhésion cible

Après cela, lancez à nouveau votre Widget, il devrait maintenant fonctionner correctement.

J’ai également rencontré ce problème et la seule solution que j’ai résolue a été d’append une contrainte verticale et horizontale à chaque object du storyboard.

Vérifiez dans le mainstoryboard de l’extension actuelle, viewcontroller avec l’option “Is Initial View Controller” a été activé.

Erreur très trompeuse. Comme mentionné ci-dessus. Sélectionnez votre contrôleur de vue et ajoutez une contrainte manquante ou ajoutez-vous une contrainte pour résoudre le problème.

entrer la description de l'image ici

J’ai résolu mon cas par: Activer les groupes d’applications pour l’application conteneur et extension. Et supprimez tous les contrôles UIKit cachés comme UILabel, UIView, ...

J’ai eu le même problème lors de l’exécution de mon extension. Dans mon cas, il a été résolu en exécutant l’extension dans le périphérique réel.

J’ai aussi rencontré ce problème. Le problème pour moi était que je exécutais deux programmes à la fois sur mon simulateur. Après avoir arrêté l’un d’eux, le message d’erreur a disparu. J’espère que cela aide.

Voici mon expérience avec ce message d’erreur. J’ai eu un storyboard avec 4 ViewControllers dedans. J’ai fait un extrait de refactor sur chacun d’eux, alors maintenant j’ai 5 storyboards, dont 4 avaient des contrôleurs de vue et l’original, “main”, il n’y avait que des références de storyboard.

Eh bien … c’est mauvais. Ne fais pas ça.

Tout a fonctionné lorsque j’ai conservé le storyboard initial dans le fichier storyboard d’origine, alors je n’ai pas refait une seule d’entre elles.

Après avoir fait la plupart des choses qui ont été mentionnées dans les réponses sur cette question et qui obtiennent toujours des erreurs avec le widget d’aujourd’hui – j’ai trouvé quelque chose qui a fonctionné pour moi.

Ouvrez les parameters de génération de la cible de votre widget et recherchez les bibliothèques standard Swift incorporées . Sélectionnez Oui.

J’espère que cela fonctionne pour vous si rien d’autre n’a pas aidé

Dans mon cas, il y avait une erreur dans mon plist cible: j’ai NSExtensionPrincipalClass les docs ici et j’ai ajouté la propriété NSExtensionPrincipalClass : quand je l’ai supprimée et sa valeur (le nom du principal et unique, classe), ça marchait bien

J’ai trouvé que si vous utilisez un StoryBoard, vous devrez aller dans info.plist et supprimer la propriété NSExtensionPrincipalClass . Après cela, l’extension s’est bien chargée.

Assurez-vous que le paramètre de [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP] correspond au nom du groupe que vous avez défini.

C’est le problème du simulateur, essayez de vrais appareils.