Сегодня Extension Не удалось наследовать разрешения CoreMedia от
Я пытаюсь добавить расширение Today в Swift к моему приложению Objective-C. Я продолжаю получать это сообщение в журнале отладки: Failed to inherit CoreMedia permissions from 3005: (null)
. Число ex. 3005 каждый раз отличается. Я читаю из NSUserDefaults из виджета, но я читаю/пишу в самом приложении. Единственным кодом в моем TodayViewController является следующее:
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 no update required, use NCUpdateResult.NoData
// If there an update, use NCUpdateResult.NewData
completionHandler(NCUpdateResult.NewData)
}
Ответы
Ответ 1
Я полагаю, что предупреждение "Не удалось наследовать разрешения CoreMedia от NNNN" связано с группами приложений при создании расширения приложения. Как ваше приложение, так и расширение вашего приложения должны включать в себя возможности групп приложений и использовать один и тот же идентификатор контейнера группы приложений (пример: group.com.yourdomain.yourappname). Группы приложений используются, чтобы позволить нескольким приложениям доступ к общим контейнерам и разрешать дополнительную межпроцессную связь между приложениями.
![Capabilities should look like this]()
Ответ 2
У меня был тот же вывод журнала. Очистка (Cmd + Shift + K)
решила его для меня.
Ответ 3
Сначала нажмите Assets.xcassets
![Сначала нажмите]()
Во-вторых, нажмите "Целевое членство", проверьте свое приложение и виджет, чтобы позволить виджету получать доступ к вашим ресурсам.
![Во-вторых, нажмите на целевое членство]()
После этого снова запустите Widget, теперь он будет работать нормально.
Ответ 4
Я столкнулся с этой проблемой, и единственным решением, которое я решил, было добавление вертикального и горизонтального ограничений каждого отдельного объекта в раскадровке.
Ответ 5
Завершите проверку mainstoryboard сегодняшнего расширения, был включен viewcontroller с параметром "Is Initial View Controller".
Ответ 6
Очень ошибочная ошибка. Как упоминалось выше. Выберите свой контроллер представления и добавьте отсутствующее ограничение или добавьте ограничение для себя, чтобы исправить проблему.
![введите описание изображения здесь]()
Ответ 7
Сделав большинство вещей, которые были упомянуты в ответах на этот вопрос, и все еще получая ошибки с сегодняшним виджетом - я нашел то, что мне помогло.
Откройте целевой объект виджета " Настройки сборки" и найдите " Всегда вставлять стандартные библиотеки Swift". Выберите Да.
Надеюсь, что это работает для вас, если ничего не помогло
Ответ 8
Я разрешил свой вопрос: Включите группы приложений для контейнера и приложения расширения. И удалите все скрытые элементы управления UIKit как UILabel, UIView, ...
Ответ 9
У меня была такая же проблема при запуске моего расширения. В моем случае это было решено, запустив расширение в реальном устройстве.
Ответ 10
Я обнаружил, что если вы используете StoryBoard, вам нужно будет войти в info.plist и удалить свойство NSExtensionPrincipalClass
. После этого расширение начало загружаться очень хорошо.
Ответ 11
Я столкнулся с этой проблемой. Проблема для меня заключалась в том, что я запускал сразу две программы на моем симуляторе. После того, как я остановил одну из них, сообщение об ошибке исчезло. Надеюсь, что это поможет.
Ответ 12
Вот мой опыт с этим сообщением об ошибке. У меня была раскадровка с 4 ViewControllers в ней. Я сделал рефакторинг на всех из них, так что теперь у меня есть 5 раскадровки, 4 из которых имеют контроллеры представлений и оригинальные, "основные", у которых были только ссылки на раскадровку.
Ну... это плохо. Не делайте этого.
Все работало, когда я хранили исходную раскадровку в исходном файле раскадровки, поэтому я не рефакторировал только один из них.
Ответ 13
Это поразило меня, потому что у меня был собственный консолидированный init(nibName:bundle:coder:)
в моем контроллере представления, и я реализовал initWithCoder
следующим образом, чтобы удовлетворить Swift:
required init?(coder aDecoder: NSCoder) {
self.init(nibName: nil, bundle: nil, coder: aDecoder)
}
Я исправил проблему, сделав эту реализацию вызовом super.init(coder:)
:
required init?(coder aDecoder: NSCoder) {
// [...setting some variables...]
super.init(coder: aDecoder)
}
Ответ 14
В моем случае произошла ошибка в моем целевом plist: я краю docs здесь, и я добавил свойство NSExtensionPrincipalClass
: когда Я удалил его и его значение (имя принципала и уникальный класс), он отлично работал
Ответ 15
Убедитесь, что параметр [[NSUserDefaults alloc] initWithSuiteName:APP_GROUP]
соответствует имени группы, которую вы определили.
Ответ 16
Это проблема симулятора, попробуйте некоторые реальные устройства.