#objective-c #swift #nstask
#objective-c #swift #nstask
Вопрос:
Я пытаюсь создать концептуальное приложение macOS для рендеринга файла проекта Adobe After Effects, выполнив aerender
инструмент командной строки через NSTask / Process, но без особого успеха.
var task: Process = Process()
func render()
let compPath = "/Users/Admin/Documents/test-proj.aep"
task.launchPath = "/Applications/Adobe After Effects CC 2019/aerender"
task.arguments = ["-project", compPath,
"-comp", "output"]
do {
try task.run()
} catch let error {
print(error)
}
}
Приведенный выше код успешно запускается After Effects в фоновом режиме, но журналы выдают следующий вывод:
aerender version 16.1.1x4
PROGRESS: Launching After Effects...
aerender ERROR -1701: AEGetParamPt failed at line 780
Я также попытался поместить команды в отдельный сценарий оболочки и вместо этого выполнить его из приложения, но это также приводит к тем же результатам.
Я могу успешно запускать те же команды непосредственно в терминале, используя bash
и zsh
и получать идеальную визуализацию видео. Поэтому я думаю, что это ошибка с NSTask / Process, а не aerender
.
Приложение имеет:
- Изолированная среда приложений отключена
- Полные права доступа к диску для чтения и записи.
На данный момент я открыт для всех идей и ответов в Obj-C или Swift!
Комментарии:
1. Возможно, в вашей оболочке есть настройки переменных среды, которых вам
Process
не хватает.
Ответ №1:
Вам необходимо установить ESTK (ExtendScript Tool Kit) на вашем mac. В моем случае я исправил это при установке.
Обратитесь к загрузке Adobe Extendscript Toolkit CC для macOS 10.13.2