我正在构建一个需要执行用ruby编写的框架的macOS应用程序。目前使用macOS High Sierra 10.13.x,系统ruby版本仅为2.3.3。我使用brew / rvm(取决于)来安装最新版本。
尝试使用/usr/local/bin/ruby
运行~/.rvm/rubies/ruby-2.5.0/bin/ruby
或Process
时,Xcode会引发错误Operation is not permitted
。
将/usr/bin/ruby
用作launchPath
时,此方法可以正常使用。
有没有办法从/usr/local/bin/ruby
或~/.rvm/rubies/ruby-2.5.0/bin/ruby
或任何其他自定义路径执行ruby?
使用当前版本的macOS,也无法将/usr/bin/ruby
的符号链接更新为其他二进制文件。
到目前为止,这是我的实现:
let myScript = Bundle.main.path(forResource: "myScript", ofType: "command")
let task = Process()
task.launchPath = "/bin/sh"
task.arguments = myScript, basePath
taks.launch()
这里是myScript
内容:
#!/bin/sh -l
BASE_PATH="$1"
cd "${BASE_PATH}"
/usr/local/bin/ruby my_ruby_script.rb
当我启动任务时,我收到了这条消息:
/usr/local/bin/ruby: Operation not permitted
或
~/.rvm/rubies/ruby-2.5.0/bin/ruby: Operation not permitted
希望你有一个解决方案。