Служба XPC не запускается из расширения редактора исходного кода Xcode (`все еще занято`)

Мне удалось настроить расширение редактора исходного кода Xcode для работы с XPC.

Когда я запускаю приложение через Xcode для отладки, все работает. Мое расширение XPC запущено.

Затем я заархивировал и распространял проект (для разработки). После установки расширения и вызова команды служба XPC никогда не запускается. Я не вижу этого в Activity Monitor.

Кроме того, расширение Xcode просто показывает ошибку:

Команда Foo все еще занята.

Почему он должен правильно открывать службу XPC в режиме отладки, но когда я распространяю приложение, он не может запустить службу XPC?

Мое расширение XPC (и приложение) зависит от созданной мной общей структуры . Не уверен, связано ли это с проблемой.


person Senseful    schedule 14.05.2021    source источник


Ответы (1)


Лучший способ отладить это - не обязательно просматривать сообщения консоли, а скорее просматривать отчеты о сбоях в приложении консоли. Когда я пришел туда, я заметил, что служба XPC дает сбой при каждом запуске.

Авария была:

Termination Reason:    DYLD, [0x1] Library missing

Это заставило меня понять, что мне нужно дважды проверить настройки, которые я использовал, когда обновление с Objective-C XPC до Swift XPC. В частности, меня смущало то, что в статье сказано установить Runtime Search Paths: @loader_path/../../../../Frameworks. Оказывается, его нужно добавлять, а не удалять из списка.

Я переключил пути поиска пути выполнения XPC с:

$(inherited)
@loader_path/../../../../Frameworks

to

$(inherited)
@executable_path/../Frameworks
@loader_path/../Frameworks
@loader_path/../../../../Frameworks

И служба XPC больше не вылетает.

person Senseful    schedule 14.05.2021