Cocoa dev 运行 shell 命令

近期在做 Maria 的开发的时候,需要运行 Shell 命令,这里把遇到的一些坑说明一下。

Sandbox

首先如果你需要通过 Shell 多外操作的话,需要关闭 Sandbox,不然执行 Shell 命令的时候就会一直卡在那里。

.sh 文件

执行 Shell 命令,一般都是先写到一个 .sh 文件里面。当你添加一个 .sh 文件到工程项目里时,请注意要连接上项目相应 Target.

Error

如果遇到程序 Crash 并给出 path not accessible 错误信息,需要给你 .sh 文件可运行权限。大致做法:

  1. 打开终端并进入你 .sh 文件所在的目录
  2. chmod +x yourFile.sh
  3. Xcode -> Product -> Clean

NSTask 的基本用法

let task = NSTask()
let shFilePath = NSBundle.mainBundle().pathForResource("yourfile", ofType: "sh")
task.launchPath = shFilePath
task.arguments = ["param1", "param2"]
task.launch()
task.waitUntilExit()