web-dev-qa-db-fra.com

Today Extension n'a pas pu hériter des autorisations CoreMedia de

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)
}
63
Shan

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.

Capabilities should look like this

45
Jon

D'abord, cliquez sur Assets.xcassets

 First, Click on Assetes.xcassets

Deuxièmement, cliquez sur Adhésion cible, vérifiez à la fois votre application et votre widget pour permettre au widget d'accéder à vos ressources.

 Second, Click on Target Membership

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

13
vhong

J'ai eu le même journal de sortie. Le nettoyage (Cmd + Shift + K) l'a résolu pour moi.

13
Maurice

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.

8
Phanith

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é.

6
pavelcauselov

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

 enter image description here

4
bpolat

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é

3
moonvader

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)
}
1
Marco

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, ...

0
phuongle

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.

0
joshLor

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.

0
Ramakrishna

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.

0
BrenBoh

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.

0
Paul Cezanne