Вы говорите, что «это работало отлично» в предыдущих системах.Мне трудно в это поверить, поскольку почти все в вашем коде неверно.Я исправил ваш код и заставил ваш скрипт работать без особых затруднений.
Я постараюсь описать, что я сделал.
Чтобы подготовиться, я запустил версию вашего скриптав редакторе скриптов (конечно, удаляя обратную косую черту и интерполяцию строк):
tell application "Safari"
activate
end tell
tell application "System Events"
tell process "Safari.app"
keystroke "c" using {command down}
delay 0.1
set myData to (the clipboard) as text
return myData
end tell
end tell
Сначала скрипт не запускался, но диалоговое окно отправило меня в «Системные настройки» -> «Безопасность и конфиденциальность» -> «Доступность», гдеЯ проверил Редактор скриптов и системные события.
![enter image description here](https://i.stack.imgur.com/rcN6p.png)
Теперь я был готов создать приложение.Мое приложение называется AnotherAppleScriptExample.В своих правах песочница имеет номер NO.
![enter image description here](https://i.stack.imgur.com/SwtyH.png)
В ее Info.plist есть эта запись:
![enter image description here](https://i.stack.imgur.com/0eV9i.png)
Моя версия вашего кода (исправление различных ошибок Swift) такова:
let app = "Safari.app"
let script = """
tell application "\(app)"
activate
end tell
tell application "System Events"
tell process "\(app)"
keystroke "c" using {command down}
delay 0.1
set myData to (the clipboard) as text
return myData
end tell
end tell
"""
if let scriptObject = NSAppleScript(source: script) {
var error: NSDictionary? = nil
let result = scriptObject.executeAndReturnError(&error)
if( kAENullEvent != result.descriptorType ){
print(result.stringValue as Any)
}
}
Я запустил приложение.У меня есть два диалога.Сначала это:
![enter image description here](https://i.stack.imgur.com/agsd5.png)
Я нажал OK.Тогда это:
![enter image description here](https://i.stack.imgur.com/SEugE.png)
Я нажал Открыть системные настройки.В Системных настройках я проверил свое приложение (теперь проверяются и системные события, и мое приложение):
![enter image description here](https://i.stack.imgur.com/2g6ql.png)
Теперь земля полностью подготовлена.Я вышел из приложения и снова запустил его.Скрипт работал правильно, печатая выделение в Safari.