Ответ 1
Я узнал, что я обращаюсь к своей группе приложений с неправильным именем. Просто убедитесь, что вы получаете доступ к группе приложений с "group.something.something", а не просто "something.something"
Когда я запускаю свой Today Extension на симуляторе, все работает нормально, и он отображает следующее, как ожидалось:
Однако, когда я запускаю его на своих устройствах (iPod touch и iPhone 5s), тело не будет отображаться (не обращайте внимания на название и значок, который был изменен)
Я подключил отладчик к моему расширению, и я получил следующее:
Я понятия не имею, что все это значит...
Я удалил весь код для Today Extension, чтобы проверить, была ли проблема с моим кодом, и ничего не изменилось, поэтому я сомневаюсь, что проблема с моим кодом. Любые предложения о том, как исправить это, будут очень признательны.
(У меня есть группы приложений, если они имеют какое-либо значение)
Я узнал, что я обращаюсь к своей группе приложений с неправильным именем. Просто убедитесь, что вы получаете доступ к группе приложений с "group.something.something", а не просто "something.something"
Убедитесь, что ваша целевая версия расширения верна. Xcode'd дает вам самую высокую версию по умолчанию, такую как 8.3, и если ваша версия iOS ниже ее, Xcode'd даст вам сбой.
Я нашел решение для своего дела. Мне просто нужно было указать arm64 как допустимую архитектуру для цели виджетов.
В Target Widget
Настройки сборки > Действительные архитектуры
У меня были только armv7 и armv7s. Я добавил arm64, и он работал как прелесть в моем 5s устройстве
Несколько точек, которые нужно запомнить при использовании расширений приложений
Идентификатор пакета для целевого расширения должен быть com.companyName.AppName.ExtensionName
У вас должен быть отдельный AppID для целевого расширения, с идентификатором, указанным как com.companyName.AppName.ExtensionName, и создайте профиль обеспечения с помощью этого AppID.
Кроме того, созданный appGroupID должен быть встроен как в AppID (для приложения, так и для расширения).
Поскольку вы не делились какой-либо частью кода, я не могу помочь вам с конкретным ответом. Попробуйте отладить ваш виджет, выполнив следующие действия: Debug- > Attach to Process → (выберите ваш виджет из меню) и отлаживайте viewdidload viewwillappear и - (void) widgetPerformUpdateWithCompletionHandler: (void (^) (NCUpdateResult)) методы завершенияHandler. Надеюсь, что это поможет.
Источники моих проблем:
надеюсь, что это поможет кому-то
В моем случае я устанавливаю предпочтительный размер контента и начинаю работать с устройством
self.preferredContentSize = CGSizeMake(UIScreen.mainScreen().nativeBounds.width, 100.0)
У меня возникла проблема с использованием пользовательского ViewController в расширении общего ресурса. Оказывается, что ресурсы в мини-приложениях расширения ограничены, поэтому, когда мое расширение генерировало миниатюры, оно вызывало сбой расширения, поскольку использовалось слишком много фоновых потоков. Сокращение генерации миниатюр до одного за раз решило проблему.
Смущает то, что это ограничение не было видно в симуляторе, только на реальном устройстве.