В прошлом я мог успешно запускать сценарии оболочки с помощью этой функции:
typealias runShellClosure = (_ jsonString:String) -> Void
func runShell(_ command: String, completion: runShellClosure) {
let task = Process()
task.launchPath = "/bin/zsh"
task.arguments = ["-c", command]
let pipe = Pipe()
task.standardOutput = pipe
task.launch()
let data = pipe.fileHandleForReading.readDataToEndOfFile()
let output: String = NSString(data: data, encoding: String.Encoding.utf8.rawValue)! as String
completion(output)
}
Сегодня я установил YQ (используя Homebrew) - YQ преобразует файлы YAML в JSON.
Запустил тестирование в Терминале:
yq r -j ~/Desktop/xxxxxxx/swagger/yml/up-api.yaml
и получил ожидаемые результаты. В моем приложении я передаю ту же команду функции runShell:
Я получаю ошибку command not found
.
Не уверен, что я делаю не так. Я только что переключился на Каталину, но переключение оболочки на Bash вернуло те же результаты.
Спасибо
Редактировать: я могу запустить эту команду:
ls ~/Desktop/Xandr/swagger/yml/
и получить ожидаемые результаты. Также песочница отключена.