我与离子具有命令行界面工作启动路径。我想创建一个帮助执行某些命令的小型Mac应用程序。使用NSTask执行离子生成命令 - 不能访问
在终端I cd Users/me/Desktop/Repos/ionic-project/myApp
改变后,我会例如ionic run
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/bin/bash";
task.currentDirectoryPath = @"cd Users/me/Desktop/Repos/ionic-tryouts/myApp";
task.arguments = @[@"ionic run"];
[task launch];
但是这给了我'工作目录不存在'。 我已经阅读了很多关于SO的文章。我的错误是什么?
编辑:
感谢Christik了详细的解答。我现在有这样的代码:
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/usr/local/bin/ionic";
task.currentDirectoryPath = @"/Users/me/ionic-tryouts/myApp";
task.arguments = @[@"run"];
[task launch];
现在我得到以下错误:ENV:节点:No such file or directory
。我想这是来自一个问题,node.js没有找到(离子建立在节点之上)。我发现this问题 - 缺少正确名称的符号链接可能是原因。但是设置节点的符号链接并没有帮助。有任何想法吗?
EDIT2: 我给Christik正确的答案,即使我不能最终得到它的工作。我仍在调查。也许这是节点安装错误。
EDIT3: 我看到提到,可能会更好,如果节点是由自制重新安装,因为安装自制软件也没有sudo一些职位。一句话评论:没有帮助
感谢您的回答,但如上所述,我仍然有麻烦。我会设置一个赏金;-) – brainray
@brainray:'@ [@“ - c”,@“ionic”,“run”]'参数列表是针对@“/ bin/sh”可执行文件的。对于离子,你只需要通过'@ [@“run”]',对不起,如果我不清楚这一点。 – Cristik
感谢您的关注:-)但即使只有'@ [@“run”]'作为参数,它也会给出'env:node:No such file or directory'。我想是离子安装有一些东西 – brainray