2016-12-21 11 views
10

Когда я пытаюсь создать и запустить расширение своей клавиатуры, он иногда просто сбой с Thread 1: signal SIGQUIT.Быстрое расширение клавиатуры SIGQUIT, Выполнение было прервано, причина: EXC_BREAKPOINT

Я не могу воспроизвести ошибку. Иногда я могу создавать и запускать свое приложение, но большую часть времени клавиатура просто уходит. Это происходит на самом устройстве. В симуляторе он не открывает мою клавиатуру и говорит Waiting to Attach.

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

Details: No plist data for fetching view hierarchy: error evaluating expression “(id)[(Class)objc_getClass("DBGViewDebuggerSupport_iOS") fetchViewHierarchyWithOptions:(id)[(Class)objc_getClass("NSDictionary") dictionaryWithObjects:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:1]] arrayByAddingObject:(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"_UIVisualEffectBackdropView"] arrayByAddingObject:@"_UIBackdropEffectView"]] arrayByAddingObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:0]] forKeys:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"DBGViewDebuggerUseLayersAsSnapshots"] arrayByAddingObject:@"DBGViewDebuggerEffectViewsToSnapshotAsImage"] arrayByAddingObject:@"DBGViewDebuggerAlwaysEncodeLayers"]]]”: error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18daddc34). 
The process has been returned to the state before expression evaluation. 

Method: -[DBGAbstractViewDescriber handleFetchedViewInfo:fetchError:resultHandler:] 
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide. 

Я также взял скриншот процессов.

enter image description here

я делаю что-то не так, и как я мог бы предотвратить это мое расширение клавиатуры завершает работу все время при его запуске? Это на самом деле ошибка, как говорится в описании?

+0

Получил то же самое. И, судя по Google, эта ошибка, похоже, появилась совсем недавно. Кажется, это проблема XCode 8.2.1 – Vaiden

+0

То же самое происходит со мной, к сожалению –

+0

Я тоже страдаю от этого. Кто-нибудь еще найдет решение? – Randy

ответ

2

ОТКАЗ

Похоже, что-то в Xcode 8.2.1 нарушается, и отладчик не правильно прикрепление к правильному процессу или процесс хостинга не правильно загрузки нового кода.

Это не постоянное решение, а временное обходное решение.

РЕШЕНИЕ

Я был в состоянии обойти эту проблему, выполнив описанные ниже действия.

  1. убить любой процесс, который использует клавиатуру (важно!)
  2. Запустите приложение с помощью отладчика, поэтому последний код будет развернут на устройстве
  3. Перейдите в раздел Настройки> Общие> Клавиатура> и т.д.
  4. Удалить пользовательскую клавиатуру
  5. заново добавить свои пользовательские клавиатуры
  6. отладка приложения еще раз

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

+0

Когда вы говорите, что убиваете любой процесс, который использует вашу клавиатуру, как это сделать? –

+1

Закройте все приложения, которые используют клавиатуру. – Randy

0

Как я понимаю, это ошибка в Xcode 8.2.1. потому что перед обновлением моя пользовательская клавиатура работала очень хорошо. Это временное решение.

  1. Запустите свой код, как всегда!
  2. Поднимите клавиатуру до появления ошибки (SIGQUIT)!
  3. Goto Xcode> отладки> отрывать
  4. Goto снова Xcode> отладки> Присоединить к процессу: присоединить клавиатуру (он должен быть первым процессом)

теперь ваши точки останова будут работать. но, к сожалению, нет выхода журнала. Я надеюсь, что это временное решение вашей проблемы.