使用RVM强制特定红宝石在Xcode中运行脚本生成阶段(Use rvm to force speci

2019-07-21 21:22发布

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安装?

Answer 1:

试试这个在Xcode中的脚本的开头:

source "$HOME/.rvm/scripts/rvm"


Answer 2:

我有同样的(好,坏)的问题,下面为我工作的代码。 实现关键的一点是,在命令行中,您使用<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文件难吃。 对于所有,但最琐碎的东西,我的实际运行脚本步骤通常只是一个行调出到外部脚本:



文章来源: Use rvm to force specific Ruby in Xcode Run Script build phase
标签: ruby xcode rvm