macOS Mojave, Automator "Не разрешено отправлять события Apple в системные события".
После того, как я обновился до Mojave, я больше не могу использовать службу автоматизатора, которую я ранее использовал с предупреждением ниже.
- В разделе Безопасность и конфиденциальность я уже проверил редактор AppleScript.
Видите ли вы какие-либо проблемы с моим кодом или это проблема новейших macOS?
скрипт
on run {input, parameters}
set pathList to {}
repeat with itemNum from 1 to count of input
tell application "System Events"
copy POSIX path of (container of (item itemNum of input)) to end of pathList
end tell
end repeat
return pathList
end run
Ответы
Ответ 1
Это определенно является частью новой системы безопасности Mojave. В terminal
попробуйте
osascript -e 'tell application "Finder"' -e 'set _b to bounds of window of desktop' -e 'end tell'
и вы можете получить:
36:42: execution error: Not authorized to send Apple events to Finder. (-1743)
То, что должно произойти при первом выполнении, - Finder открывает диалоговое окно, информирующее вас о том, что terminal
запрашивает разрешение на отправку событий в Finder. Если вы разрешите это, terminal
добавится на страницу "Автоматизация" в " System Preferences > Security & Privacy > Automation
:
На данный момент я вижу два вопроса:
- реализация запроса разрешения для действия сценария, по-видимому, прослушивается; Я запустил другие сценарии, которые запрашивают разрешение на отправку событий в Safari, и Finder не запрашивает разрешение, он просто возвращает ошибку.
- упрощенная автоматизация требует наличия какого-либо механизма для предоставления разрешений априори; примером может быть использование AppleScript с Ansible и невозможность предварительной загрузки грантов
Другие написали более обширную информацию об этом:
Надеюсь, что это будет разработано до того, как Mojave отправится, поскольку это серьезно влияет на возможности автоматизации на macOS.
Ответ 2
Я столкнулся с такой же ошибкой при открытии gitk
.
Ошибка в сценарии запуска: ошибка выполнения: не авторизован для отправки событий Apple в системные события. (-1743)
РЕШЕНИЕ
Зайдите в Settings → Security & Privacy → Privacy → Automation → Privacy tab
и установите флажок System Events
.
Ответ 3
У меня была аналогичная ошибка при использовании приложений AppleScript .app
. Я получил следующую ошибку:
Not authorized to send Apple events to Finder. (-1743)
.scpt
.applescript
является реэкспорт приложения из исходного кода .scpt
или .applescript
. Это создает новое приложение .app
, которое в моем случае успешно работало. Первоначальный запуск потребовал одобрения (а также некоторые последующие запуска), и приложение было добавлено в качестве записи в разделе " Settings → Security & Privacy → Privacy → Automation
.
Ответ 4
Вот что я сделал, чтобы решить эту проблему для меня. Я перешел в Системные настройки> Безопасность и конфиденциальность> Доступность (Опции слева)> (Введите системный пароль)> Нажмите "Автозапуск" (или ваше приложение, которое вы хотите включить), и TADA он работает.
Ответ 5
Я решил ту же проблему, используя следующие шаги. Откройте Plist и добавьте в него следующие ключи
<key>NSAppleEventsUsageDescription</key>
<string>Please give access to Export details to Outlook</string>
Вы получите всплывающее подтверждение, чтобы разрешить или запретить, когда ваше приложение запускает сценарий в первый раз. если вы нажмете "разрешить", он выполнит скрипт.
Ответ 6
ОБНОВЛЕНИЕ: обновление последней публичной бета-версии (по состоянию на 4 августа 2018 года) устранило проблему для меня. До этого проблема сохранялась во всех публичных бета-версиях Mojave.
Оригинальный ответ:
Просто хотел сообщить вам, что и я, и другой друг испытывают эту ту же проблему, с различными рабочими процессами Automator, которые используют Applescript (отличные от ваших). У нас есть проблема, связанная как с ручной активацией (Finder → Services → click item), так и с активацией клавиатуры.
Даже незнакомец, рабочий процесс прекрасно выполняется при тестировании внутри Automator.
Я подал отчет об ошибке через помощник по обратной связи и предлагаю всем, кто видит это, что вы делаете тоже! Пискливое колесо и все...
Automator - Ошибка разрешения. "Действие" Запустить AppleScript "обнаружило ошибку:" Не разрешено отправлять события Apple в системные события ".
Автоматический рабочий процесс выполняется внутри Automator
Ответ 7
Сброс с терминала, как это исправило это для меня:
tccutil сброс AppleEvents; tccutil сбросить SystemPolicyAllFiles
Ответ 8
Я пытался вставить текущую дату в приложение "Напоминания" нажатием клавиши. Вместо того, чтобы использовать рекомендуемые "Настройки → Безопасность и конфиденциальность → Конфиденциальность → Специальные возможности → Automator", мне пришлось добавить напоминания вместо Automator, чтобы разрешить команду нажатия клавиши. Раздражает, что он разрешает действие только для конкретного приложения, но, похоже, это так.
Ответ 9
У меня все еще были проблемы с отправкой нажатий клавиш через несколько месяцев после освобождения Мохаве. Для меня странным решением было зайти в Системные настройки → Безопасность и конфиденциальность → Вкладка "Конфиденциальность" → Разблокировать замок с помощью пароля → Удалить (с кнопкой "минус") Automator из списка приложений в строке "Доступность". Возможно, что-то было из-за запуска бета-версий, которые нужно было удалить, прежде чем мои скрипты могли снова отправлять нажатия клавиш.
Изменение: После выхода из системных настроек я снова получил сообщение об ошибке. Повторное добавление Automator.app в строку Accessibility, похоже, исправило это на данный момент.
Ответ 10
В моем случае я должен был пойти:
Настройки и конфиденциальность > Конфиденциальность > Полный доступ к диску (на левой панели) и добавьте Automator
Я также попытался добавить Automator в Accessibility, как предлагали другие ответы (что изначально не работало для меня), поэтому, возможно, нам нужно добавить Automator в обоих местах.
Ответ 11
если вы не получаете что-то подобное при попытке запустить скрипт Apple, и более того, вы не видите iTerm в разделе "Автоматизация" в настройке конфиденциальности, тогда может помочь самый простой способ: просто перезапустите ваш Mac;) выражение об отказе от ответственности: Еще одной причиной этой ситуации может быть переключение пользователей.