【发布时间】:2019-04-21 20:58:13
【问题描述】:
我正在尝试构建一个概念验证 macOS 应用程序,以通过 NSTask/Process 执行 aerender 命令行工具来渲染 Adobe After Effects 项目文件,但没有太大成功。
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
我还尝试将命令放入单独的 Shell 脚本并从应用程序中执行,但这也会产生相同的结果。
我可以使用bash 和zsh 直接在终端中成功运行相同的命令,并完美呈现视频。所以我认为这是 NSTask/Process 的错误,而不是 aerender。
应用程序有:
- 应用沙箱已关闭
- 读取的完整磁盘访问权限 然后写。
目前,我对 Obj-C 或 Swift 中的所有想法和答案持开放态度!
【问题讨论】:
-
也许你的shell有你的
Process缺少的环境变量设置。
标签: objective-c swift nstask