Расширение клавиатуры работает в симуляторе, но не на устройстве

Я занимаюсь разработкой собственного расширения клавиатуры. До сих пор он отлично работал как на симуляторе, так и на устройстве.

После некоторых небольших изменений (добавление import AudioToolbox в одном классе и одной команде) он внезапно перестал работать на устройстве. Приложение компилируется и запускается, но затем я активирую свою клавиатуру. XCode показывает следующую ошибку:

Lost connection to "My iPhone".
Restore the connection to "My iPhone" and run "xxx.xxx.xxx.xxx-Keyboard" 
again, or if "xxx.xxx.xxx.xxx-Keyboard" is still running, you can 
attach to it by selecting Debug > Attach to Process > xxx.xxx.xxx.xxx-Keyboard.

Эта ошибка похожа на ту, которая появляется, когда кабель iPhone отсоединен, но с кабелем все в порядке.

Моя клавиатура сама по себе не запускается - при активации (с помощью клавиши глобуса) происходит задержка в несколько секунд (что является нормальным, когда моя клавиатура загружается в режиме отладки), а затем отображается ранее активная клавиатура.

У этого проекта месяц разработки, и я полностью занят, поэтому любая помощь очень ценится.

4 ответа

Решение

Решение, которое сработало для меня:

  • неподключенный кабель iPhone
  • Очищенный проект
  • Закрытый XCode, перезагрузил компьютер
  • встроенный проект и все связанные библиотеки с нуля
  • Перезагрузка iPhone, удаление приложения с расширением клавиатуры, перезагрузка iPhone
  • переподключенный iPhone кабель, запустить расширение

Для меня проблема заключалась в том, что цель развертывания приложения отличалась от цели развертывания расширения

Перейдите в настройки своего проекта и убедитесь, что основная цель и цель клавиатуры имеют одинаковое значение цели развертывания на вкладке "Общие".

Я обнаружил, что простой перезапуск XCode обычно делает свое дело.

Для потомков: я использовал бета-версию xcode, поэтому в качестве целевого значения Keyboard по умолчанию было указано "Deployment Target 11.0". Мое устройство было на 10.3, поэтому установка молча провалилась.

Я исправил это, установив цель развертывания на более старую версию ОС (в данном случае 8.0), как предложено @yogev132.

Мне также пришлось убить и перезапустить приложение "Настройки", чтобы увидеть мою клавиатуру в меню "Добавить клавиатуры".

Другие вопросы по тегам