Как подключить и отладить собственный контроллер ClockKit Complications?

Я пытаюсь заставить работать пользовательское усложнение ClockKit.

  1. Я создал собственный ComplicationController, соответствующий CLKComplicationDataSource. Он добавлен в список расширений просмотра как CLKComplicationPrincipalClass.

Я могу выбрать усложнение на часах и активировать его, но я вижу только «----------------», а не мой настоящий заполнитель.

Что я пробовал

  • Я добавил пользовательский override init(){…} в свой ComplicationController и поставил в нем точку останова для отладки. Но даже при использовании схемы сборки усложнения эта точка останова никогда не достигается. Кажется, что мой пользовательский ComplicationController никогда не создается.

  • Я вижу сообщение журнала Extension received request to wake up for complication support., но мне непонятно, где это запускается в коде.

  • Я также попытался вызвать следующее из моего основного InterfaceController, чтобы узнать о моих активных осложнениях.

    if let server = CLKComplicationServer.sharedInstance() {
        for complication in server.activeComplications {
            server.reloadTimelineForComplication(complication)
        }
    }
    

    … но server возвращает ноль. Никакие усложнения, кажется, не активны и не перезагружаются.

Вопрос

  • Как мне успешно подключить свой собственный ComplicationController?

    Также приветствуются любые дополнительные советы по отладке.

    Обычно достаточно удалить усложнения из симулятора часов или приложения для часов на iPhone, или вам нужно переустановить все приложение для часов, чтобы увидеть действующее обновление, связанное с усложнением? Кроме того, когда я регистрирую что-то внутри своего пользовательского ComplicationController, должен ли я видеть его вывод только при работе со схемой сборки Complications или также с обычной схемой сборки Watch App?

Любые идеи по поиску проблемы приветствуются.


person Bernd    schedule 30.12.2015    source источник
comment
Привет, у меня точно такая же проблема с объективом c. Вы когда-нибудь получали ответы на более поздние вопросы? т.е. требуется ли перезагрузка / очистка для обновления?   -  person MagicFlow    schedule 26.01.2016


Ответы (1)


Поскольку вы действительно можете выбрать усложнение на часах, похоже, что все в проекте настроено правильно. Поскольку он не достигает точки останова, похоже, что сложность просто не может найти ваш собственный контроллер. Поскольку вы используете swift, вам нужно будет указать модуль контроллера. Попробуйте изменить значение CLKComplicationPrincipalClass в plist вашего приложения для часов на:

$(PRODUCT_MODULE_NAME).ComplicationController
person lehn0058    schedule 30.12.2015