在MacRuby发布应用中,如何使用MacRuby启动调用Ruby脚本的NSTask ?



我有一个MacRuby应用程序,在应用程序启动后,我想使用NSTask启动第二个进程。第二个进程是与应用捆绑在一起的Ruby脚本。我想使用编译到应用捆绑包中的MacRuby MacRuby解释器来启动它。我该怎么做呢?

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

#!/usr/bin/env ruby

确保脚本将被复制到资源文件夹。

创建并调用一个NSTask:

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

你试过调用NSTask吗?

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

然后在Xcode中点击以确保脚本。

最新更新