Ich versuche, meiner Objective-C-App eine Today-Erweiterung in Swift hinzuzufügen. Ich erhalte diese Meldung immer wieder in meinem Debugger-Protokoll : Failed to inherit CoreMedia permissions from 3005: (null)
. Die Nummer ex. 3005 ist jedes Mal anders. Ich lese aus NSUserDefaults aus dem Widget heraus, aber ich lese / schreibe in der App selbst. Der einzige Code in meinem TodayViewController ist folgender:
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)
}
Antworten:
Ich glaube, die Warnung "CoreMedia-Berechtigungen konnten nicht von NNNN geerbt werden" bezieht sich auf App-Gruppen, wenn Sie eine App-Erweiterung erstellen. Sowohl für Ihre enthaltene Anwendung als auch für Ihre App-Erweiterung muss die Funktion "App-Gruppen" aktiviert sein und dieselbe App-Gruppen-Container-ID verwenden (Beispiel: group.com.yourdomain.yourappname). App-Gruppen werden verwendet, um mehreren Apps den Zugriff auf gemeinsam genutzte Container zu ermöglichen und eine zusätzliche Interprozesskommunikation zwischen Apps zu ermöglichen.
quelle
Klicken Sie zuerst auf
Assets.xcassets
Klicken Sie zweitens auf Zielmitgliedschaft, überprüfen Sie sowohl Ihre App als auch Ihr Widget, um dem Widget den Zugriff auf Ihre Ressourcen zu ermöglichen.
Führen Sie danach Ihr Widget erneut aus. Es sollte nun einwandfrei funktionieren.
quelle
Ich hatte die gleiche Protokollausgabe. Die Reinigung hat
(Cmd + Shift + K)
es für mich gelöst.quelle
Ich stoße auch auf dieses Problem, und die einzige Lösung, die ich gelöst habe, war das Hinzufügen vertikaler und horizontaler Einschränkungen für jedes einzelne Objekt im Storyboard.
quelle
Check in Mainstoryboard der heutigen Erweiterung, Viewcontroller mit der Option "Is Initial View Controller" wurde aktiviert.
quelle
Sehr irreführender Fehler. Wie oben erwähnt. Wählen Sie Ihren Ansichts-Controller aus und fügen Sie fehlende Einschränkungen hinzu oder fügen Sie Einschränkungen hinzu, um das Problem zu beheben.
quelle
Nachdem ich die meisten Dinge getan hatte, die in den Antworten auf diese Frage erwähnt wurden, und immer noch Fehler mit dem heutigen Widget bekam, fand ich etwas, das für mich funktionierte.
Öffnen Sie die Build-Einstellungen Ihres Widget-Ziels und suchen Sie nach Always Embed Swift Standard Libraries . Wählen Sie Ja.
Hoffe, das funktioniert für Sie, wenn nichts anderes nicht geholfen hat
quelle
Ich hatte das gleiche Problem beim Ausführen meiner Erweiterung. In meinem Fall wurde es gelöst, indem die Erweiterung auf dem realen Gerät ausgeführt wurde.
quelle
Dies traf mich, weil ich eine benutzerdefinierte konsolidierte
init(nibName:bundle:coder:)
Methode in meinem Ansichts-Controller hatte und diese implementiert hatteinitWithCoder
, um Swift zufrieden zu stellen:required init?(coder aDecoder: NSCoder) { self.init(nibName: nil, bundle: nil, coder: aDecoder) }
Ich habe das Problem behoben, indem ich
super.init(coder:)
stattdessen diesen Implementierungsaufruf ausgeführt habe :required init?(coder aDecoder: NSCoder) { // [...setting some variables...] super.init(coder: aDecoder) }
quelle
Ich habe festgestellt, dass Sie, wenn Sie ein StoryBoard verwenden, in info.plist gehen und die Eigenschaft entfernen müssen
NSExtensionPrincipalClass
. Danach wurde die Erweiterung einwandfrei geladen.quelle
Ich habe meinen Fall folgendermaßen gelöst: Aktivieren Sie App-Gruppen für Container- und Erweiterungs-Apps. Und löschen Sie alle versteckten UIKit-Steuerelemente als
UILabel, UIView, ...
quelle
Ich bin auch auf dieses Problem gestoßen. Das Problem für mich war, dass ich zwei Programme gleichzeitig auf meinem Simulator ausführte. Nachdem ich einen von ihnen gestoppt hatte, verschwand die Fehlermeldung. Ich hoffe es hilft.
quelle
Hier ist meine Erfahrung mit dieser Fehlermeldung. Ich hatte ein Storyboard mit 4 ViewControllern. Ich habe einen Refactor-Extrakt für alle erstellt, daher habe ich jetzt 5 Storyboards, von denen 4 View-Controller und das Original "main" nur Storyboard-Referenzen enthielten.
Nun ... das ist schlecht. Tu das nicht.
Alles hat funktioniert, als ich das ursprüngliche Storyboard in der ursprünglichen Storyboard-Datei belassen habe, sodass ich nicht nur eines davon überarbeitet habe.
quelle
Stellen Sie sicher, dass der Parameter von
[[NSUserDefaults alloc] initWithSuiteName:APP_GROUP]
mit dem von Ihnen definierten Gruppennamen übereinstimmt.quelle
Es ist das Problem des Simulators, probieren Sie einige echte Geräte aus.
quelle