Ошибка "не разрешена для вспомогательного доступа" при запуске AppleScript с Java
У меня есть конфигурация Jenkins, которая выполняет тесты Java для приложения OS X с использованием Maven. И когда я пытаюсь запустить AppleScript, для которого требуется вспомогательный доступ, появляются разные ошибки. Поэтому я попытался выполнить AppleScript двумя способами:
В этом случае выполнение script выполняется с ошибкой: произошла ошибка типа -10810.
- Вызов osascript. В этом случае ошибка выглядит так: Системные события получили сообщение об ошибке: osascript не разрешает доступ к помощи. (-1719)
В списке доступности у меня есть следующие вещи: SystemUIServer, script Редактор, osascript, java, mvn, bash, Terminal. При запуске script в редакторе script или в osascript из терминала, script передается без ошибок.
Любые предложения, что еще я должен проверить?
Ответы
Ответ 1
Думаю, ты отвечаешь на свой вопрос. Вы можете разрешить вспомогательный доступ для редактора Script (среди прочего). Он отлично работает в редакторе Script.
Вы можете попробовать и добавить другие приложения для получения доступа. Это может быть вариант, если Script Editor не дает вам нужды.
![enter image description here]()
Ответ 2
Я решил что-то подобное этой проблеме, вставив osascript в TCC.db, используя tccutil.py
После установки я связал tccutil.py в пути.
sudo ln -s /source/tccutil/tccutil.py /usr/bin/tccutil.py
ls -l /usr/bin/tccutil.py
lrwxr-xr-x 1 root wheel 26 30 Dec 14:57 /usr/bin/tccutil.py -> /source/tccutil/tccutil.py
Затем, чтобы разрешить osascript доступ к управлению вашим компьютером, используйте следующий compand
sudo tccutil.py --insert /usr/bin/osascript
Я даже добавил script, когда проблема повторилась позже.
sudo tccutil.py --insert $(pwd)/transcribe-audio-to-text.js
Это не удалось, поэтому я перезагрузил работу: -)
transcribe-audio-to-text.js в настоящее время использует системные события, чтобы TextEdit мог сохранять текстовый файл. Это часть виртуального помощника, который очень альфа на 20160105, но источник интересен. virtual-assistant
Ответ 3
Я обнаружил, что иногда мне нужно добавить родителя процесса, который вызывает osascript, в дополнение к самому osascript независимо от того, что говорит сообщение об ошибке. Иногда мне приходится добавлять процесс дедушки и бабушки.
В частности, /bin/ bash не вызывает никакого вспомогательного API, но OSX хочет, чтобы он был указан даже несмотря на то, что osascript также указан, и мне также пришлось добавить TeamCity agent.jar.
Итак, попробуйте добавить ваш .jar файл и посмотрите, использует ли ScriptEngine промежуточного исполнятеля кода, который вам также потребуется включить.
Помните, что вам, вероятно, придется удалить и добавить свои записи, если вы измените двоичный файл (я думаю, OSX поддерживает какую-то контрольную сумму в финальной двоичной записи в своей записи в базе данных).
Ответ 4
Другой обходной путь - написать AppleScript с помощью редактора сценариев, сохранить его как отдельное приложение и предоставить ему вспомогательный доступ. Затем вы можете запускать приложение по мере необходимости из другой среды, такой как Java-приложение или рабочий процесс Automator.
Смотрите также: https://apple.stackexchange.com/a/346306/264883