NSAppleScript, выполненный из XCode, не может "сказать приложение"

Я написал функцию в XCTest, которая может успешно выполнять AppleScript, но во время выполнения сценарий не может получить доступ ни к какому приложению.

Вот один из моих AppleScript, я пытаюсь запустить:

tell application "System Events"
    set appProcessNames to the name of every application process
end tell

Вот функция, написанная для выполнения AppleScipt:

private func runAppleScript(scriptURL: URL) -> String? {
    var errorInfo:NSDictionary?
    if let script = NSAppleScript(contentsOf: scriptURL, error: &errorInfo) {
        let result = script.executeAndReturnError(&errorInfo)
        if result.stringValue != nil {
            return result.stringValue!
        } else {
        return "\(errorInfo!)"
        }
    }
    return nil
}

Однако ответ, который я получаю от NSAppleScript:

NSAppleScriptErrorAppName = "System Events";
NSAppleScriptErrorBriefMessage = "Application isn\U2019t running.";
NSAppleScriptErrorMessage = "System Events got an error: Application isn\U2019t running.";
NSAppleScriptErrorNumber = "-600";
NSAppleScriptErrorRange = "NSRange: {0, 0}";

Условия окружающей среды:

  • Mac 10.13.6
  • Версия Xcode 9.2
  • Проект НЕ находится в песочнице (или, по крайней мере, "песочница в приложении" выключена)
  • Системные настройки> Безопасность и конфиденциальность> Специальные возможности> Конфиденциальность:: AppleScript Utility.app, Редактор скриптов и Xcode Helper.app CHECKED.

РЕДАКТИРОВАТЬ: Очевидно, потому что я выполняю тест пользовательского интерфейса, приложение изолированно изолированно. Обходной путь для интеграции AppleScript с XCTest - использовать NSUserAppleScriptTask вместо NSAppleScript.

0 ответов

Другие вопросы по тегам