[英]Use non-system ruby to execute ruby scripts within macOS App
我正在構建一個macOS應用,該應用需要執行用ruby編寫的框架。 當前,使用macOS High Sierra 10.13.x的系統ruby版本僅為2.3.3。 我正在使用brew / rvm(視情況而定)安裝最新版本。
當嘗試使用Process
Xcode運行/usr/local/bin/ruby
或~/.rvm/rubies/ruby-2.5.0/bin/ruby
,拋出錯誤,即Operation is not permitted
。
當將/usr/bin/ruby
用作launchPath
時,這可以很好地工作。
有沒有一種方法可以從/usr/local/bin/ruby
或~/.rvm/rubies/ruby-2.5.0/bin/ruby
或任何其他自定義路徑執行~/.rvm/rubies/ruby-2.5.0/bin/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
希望你有一個解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.