Автоматически разрешить приложению (созданному и запущенному XCode) управлять вашим компьютером - PullRequest
0 голосов
/ 05 июля 2019

Я разрабатываю вспомогательное приложение MacOS в Xcode / ObjC.

Оно перехватывает нажатия клавиш с помощью событийных нажатий.

Когда я запускаю его из Xcode, я получаю:

2019-07-05 06:20:32.423783+0300 mapper[8108:1191874] unable to create event tap. must run as root or add privileges for assistive devices to this app.
2019-07-05 06:20:32.423809+0300 mapper[8108:1191874] No Event tap in place! You will need to call listen after tapEvents to get events.

Мне нужно перейти к system preferences -> security & privacy -> privacy -> {unlock the padlock putting my admin password} -> {locate, uncheck and recheck my executable from the list}, вот так:

enter image description here

Каждый раз, когда я изменяю строку кода и запускаюсь снова, у меня естьпройти через этот процесс проверки и снятия отметки.

Это очень неуклюжий цикл разработки.

Есть ли способ избежать этого?

1 Ответ

0 голосов
/ 08 июля 2019

В этом проекте использовался 4-летний файл проекта Xcode.

Начиная со свежего Cocoa App шаблона и копируя файлы, при первой сборке и запуске мне теперь автоматически присваивается:

enter image description here

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

Я полагаю, что улучшенное поведение может быть связано с тем, что новый проект получен из шаблона Cocoa App (который наследует свой базовый объект от NSApplicationDelegate, тогда как старый унаследовал от Шаблон командной строки (и мне пришлось вручную управлять циклом выполнения с помощью CFRunloop).

Получение координат мыши в Мохаве содержит ответ с инструкциями о том, как добавить строку в rightlements.plist:

Право, которое позволяет приложению использовать API-интерфейс Accessibility, - это право com.apple.private.tcc.allow (со значением kTCCServiceAccessibility). Как вы можете догадаться по названию, оно разрешено только в двоичных файлах, подписанных Apple.

...