macOS Mojave, Automator "Не разрешено отправлять события Apple в системные события".
После того, как я обновился до Mojave, я больше не могу использовать службу автоматизатора, которую я ранее использовал с предупреждением ниже. ![enter image description here]()
- В разделе Безопасность и конфиденциальность я уже проверил редактор 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
![enter image description here]()
![enter image description here]()
Ответы
Ответ 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
:
![enter image description here]()
На данный момент я вижу два вопроса:
- реализация запроса разрешения для действия сценария, по-видимому, прослушивается; Я запустил другие сценарии, которые запрашивают разрешение на отправку событий в Safari, и Finder не запрашивает разрешение, он просто возвращает ошибку.
- упрощенная автоматизация требует наличия какого-либо механизма для предоставления разрешений априори; примером может быть использование AppleScript с Ansible и невозможность предварительной загрузки грантов
Другие написали более обширную информацию об этом:
Надеюсь, что это будет разработано до того, как Mojave отправится, поскольку это серьезно влияет на возможности автоматизации на macOS.
Ответ 2
Я столкнулся с такой же ошибкой при открытии gitk
.
Ошибка в сценарии запуска: ошибка выполнения: не авторизован для отправки событий Apple в системные события. (-1743)
РЕШЕНИЕ
Зайдите в Settings → Security & Privacy → Privacy → Automation → Privacy tab
и установите флажок System Events
.
![enter image description here]()
Ответ 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 в обоих местах.
![screenshot showing the new Full Disk Access option]()
Ответ 11
если вы не получаете что-то подобное при попытке запустить скрипт Apple, и более того, вы не видите iTerm в разделе "Автоматизация" в настройке конфиденциальности, тогда может помочь самый простой способ: просто перезапустите ваш Mac;) выражение об отказе от ответственности: Еще одной причиной этой ситуации может быть переключение пользователей.
![enter image description here]()