2013-03-18 6 views
7

Xcodeの外では、RVMを使用して複数のRubyインストールを管理するRubyの特定のバージョンを使用します。rvmを使用してXcodeで特定のRubyを強制実行スクリプトの構築フェーズ

Appleのコマンドラインからのツールは、Rubyを/usr/bin/rubyにインストールし、バージョンは1.8.7です。

私はRVMを通して1.9.3を使用します。

Run Scriptビルドフェーズを実行しているときにXcodeに1.9.3インストールを強制的に使用させる方法はありますか?

シェルパスを特定のRubyのフルパスに設定しようとしましたが、違いはありませんでした。これは、私が1.9.3にインストールした特定のGemが、 Xcode内で実行されたときにスクリプトに表示されます。

コマンドラインでxcodebuildでプロジェクトを実行すると、スクリプトファイルフェーズのシェルパスが/usr/bin/rubyに設定されていても、スクリプトが自分のシェル環境内から実行されているため、特定のRubyが使用されます1.9.3を使用しています)。

IDEで1.9.3 Rubyのインストールを使用するにはどうすればよいですか?

+0

シンボリックリンクを作成していないだろうが、トリックを行いますか?例えば: 'ln -s $ HOME/.rvm/bin/rvm-auto-ruby/usr/bin/ruby​​' – fmendez

+0

可能であればデフォルトのインストールをそのまま残したいと思っています。 RVMのインストールは明らかに必要ですが、もし/ usr/binをそのままインストールすれば理想的です) – Jasarien

答えて

3

は、Xcodeで、スクリプトの先頭でこれを試してみてください。

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

私は同じ(まあ、悪いこと)の問題、そして私のために働いた以下のコードを持っていました。実現する 重要なのは、コマンドライン上で、あなたが<something>/bin/rvmを使用している、ということですが、シェルスクリプトでは、RVMはその環境を変更するためには、あなたは機能を使用しなければならない、とあなたが最初ロードする必要がありますは、source <something>/scripts/rvmを呼び出してシェルスクリプトに機能します。すべてこれに関する詳細here

このコードも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 . 

protipとして、私はシェルコードをproject.pbxprojというファイルに埋め込んでいます。最も些細なものが、すべての場合、私の実際の実行スクリプトステップが通常であるだけで1行の外部スクリプトを呼び出す:

enter image description here

関連する問題