簡體   English   中英

使用非系統ruby在macOS App中執行ruby腳本

[英]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

希望你有一個解決方案。

由於Martin R的幫助,我得以解決此問題。 現在,我在項目功能中停用了macOS沙箱。

現在,我可以使用任何想要的紅寶石。

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM