在用于分发的MacRuby应用程序中,如何启动使用macruby调用Ruby脚本的NSTask?

时间:2011-07-20 00:20:03

标签: macruby

我有一个MacRuby应用程序,在应用程序启动后,我想使用NSTask启动第二个进程。第二个过程是与应用程序捆绑在一起的Ruby脚本。我想使用MacRuby macruby解释器将其编译到应用程序包中。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

首先,从ruby脚本中删除.rb扩展名,否则如果使用macruby_deploy编译macruby项目,它将被编译为rbo文件。脚本文件应该将其作为第一行:

#!/usr/bin/env ruby

确保将脚本复制到Resources文件夹。

然后创建并调用NSTask:

path = NSBundle.mainBundle.pathForResource('test', ofType:nil)
task = NSTask.alloc.init
task.setLaunchPath(path)

task.launch

答案 1 :(得分:0)

嗯,你试过打电话给NSTask吗?

NSTask.launchedTaskWithLaunchPath('script.rb', nil)

然后在Xcode中单击以确保在执行期间脚本.rb就位。