Xcode中之外我使用Ruby的特定版本,使用RVM管理多个Ruby安装。
苹果公司的命令行开发工具在安装Ruby /usr/bin/ruby
是1.8.7版本。
我用1.9.3通过RVM。
有没有办法运行时,其运行脚本生成阶段,迫使Xcode中使用我的1.9.3安装?
我已经尝试过shell路径设置为我的具体红宝石的完整路径,但似乎并没有有所作为,我的意思是,我已经安装在我的1.9.3没有可用/可见的特殊宝石脚本时在Xcode中运行。
如果我运行通过我的项目xcodebuild
在命令行上,运行脚本阶段使用我的具体红宝石,因为它是从我的shell环境(即使项目文件中的shell路径设置为内部运行/usr/bin/ruby
,它仍然使用我的1.9.3)。
我能做些什么使IDE用我的Ruby 1.9.3安装?
试试这个在Xcode中的脚本的开头:
source "$HOME/.rvm/scripts/rvm"
我有同样的(好,坏)的问题,下面为我工作的代码。 实现关键的一点是,在命令行中,您使用<something>/bin/rvm
,但在一个shell脚本,为了RVM改变这种环境,你必须使用一个功能 ,你必须首先加载通过调用函数到你的shell脚本source <something>/scripts/rvm
。 更多关于这一切都在这里 。
此代码也gisted 。
#!/usr/bin/env bash
# Xcode scripting does not invoke rvm. To get the correct ruby,
# we must invoke rvm manually. This requires loading the rvm
# *shell function*, which can manipulate the active shell-script
# environment.
# cf. http://rvm.io/workflow/scripting
# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then
# First try to load from a user install
source "$HOME/.rvm/scripts/rvm"
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then
# Then try to load from a root install
source "/usr/local/rvm/scripts/rvm"
else
printf "ERROR: An RVM installation was not found.\n"
exit 128
fi
# rvm will use the controlling versioning (e.g. .ruby-version) for the
# pwd using this function call.
rvm use .
作为普罗蒂普,我找到一个嵌入shell代码project.pbxproj
文件难吃。 对于所有,但最琐碎的东西,我的实际运行脚本步骤通常只是一个行调出到外部脚本: