Подтвердить что ты не робот

Сегодня 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)
}
4b9b3361

Ответ 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

Это проблема симулятора, попробуйте некоторые реальные устройства.