Специальная раздача виджетов iOS 8

Я пытаюсь распространить простой виджет «Сегодня» со специальным профилем.

Виджет работает безупречно при вызове из XCode в режиме отладки, но отображается пустым, когда на устройстве установлено специальное приложение.

Я утверждал, что

  • профиль обеспечения правильный
  • приложение (в котором почти нет кода) запускается и отображает запрос доверия
  • PreferredContentSize был установлен
  • виджет появляется в списке виджетов (режим редактирования)
  • виджет появляется в центре уведомлений со своим заголовком, но с нулевой высотой.

    Любые подсказки? Спасибо.

ОБНОВЛЕНИЕ:

виджет действительно выполняется (loadView, viewDidAppear,...), но падает. Учитывая, что он почти пустой и работает в режиме отладки, это довольно странно. В отчете о сбое нет полезной информации.

ОБНОВЛЕНИЕ 2:

Добавление MKMapView в представление контроллера приводит к сбою. Довольно странно.


person dwery    schedule 09.11.2014    source источник
comment
Ваши настройки сборки отладки и развертывания будут отличаться. попробуйте сопоставить их (я бы изменил сборки отладки, чтобы они соответствовали сборкам развертывания). Используйте контроль версий, чтобы вернуться, если это не исправит.   -  person Abhi Beckert    schedule 11.11.2014


Ответы (2)


Кажется, виджет вылетает из-за нехватки памяти. Известно, что MKMapView прожорлив к памяти.

person dwery    schedule 11.11.2014
comment
Интересно. Сколько памяти вы используете? Обычные приложения могут использовать около 500 МБ (на оборудовании с 1 ГБ), но, возможно, сегодня виджеты должны использовать меньше. - person Abhi Beckert; 11.11.2014
comment
Держу пари, что гораздо меньше. Моя оценка 16 МБ - person dwery; 11.11.2014

Несколько вещей, которые вы можете проверить:

  1. Отличается ли идентификатор вашего пакета в специальном профиле? Если это так, вам нужно создать новый info.plist для расширения и приложения, чтобы они совпадали.
  2. Используете ли вы какие-либо зависимости, которые не поддерживают 64-битную версию (ARM64)? Я видел проблему, из-за которой двоичный файл расширения не был правильно создан со старыми фреймворками, которые не поддерживают 64-битную версию. Он отлично работал на устройствах armv7, но не отображался на arm64, как вы описываете.
  3. Используете ли вы контейнер группы приложений? Имена должны совпадать в специальном профиле.

Это все, о чем я могу думать в данный момент. У меня была аналогичная проблема с бета-версией iOS 8, когда мне приходилось время от времени перезагружать устройство, чтобы устранить описанный вами симптом, но пока не в версии выпуска. Надеюсь это поможет.

person Henry T Kirk    schedule 10.11.2014
comment
идентификатор пакета в профиле — foo.bar.* , идентификатор приложения — foo.bar.myapp и идентификатор виджета — foo.bar.myapp.mywidget . Я проверю журнал устройства на наличие связанных ошибок. 2 и 3 должны быть в порядке. Спасибо за ваше время! - person dwery; 10.11.2014