10

Xcode 以外では、特定のバージョンの Ruby を使用し、RVM を使用して複数の 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と、シェル環境内から実行されるため、Run Script フェーズで特定の Ruby が使用されます (プロジェクト ファイルのシェル パスが に設定され/usr/bin/rubyていても、1.9.3 が使用されます)。 .

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

4

2 に答える 2

6

私は同じ(まあ、もっと悪い)問題を抱えていましたが、次のコードがうまくいきました。重要なことは、コマンド ラインでは を使用している<something>/bin/rvmが、シェル スクリプトでは rvm がその環境を変更するには、関数を使用する必要があり、最初にその関数をシェル スクリプトにロードする必要があることです。呼び出しsource <something>/scripts/rvmます。詳細については、こちらをご覧ください。

このコードも要旨です。

#!/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 .

プロティップとして、シェルコードをproject.pbxprojファイルに埋め込むのは厄介だと思います。些細なことを除いて、私の実際のスクリプト実行ステップは通常、外部スクリプトへの 1 行の呼び出しです。

ここに画像の説明を入力

于 2014-10-07T14:51:22.493 に答える
4

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

source "$HOME/.rvm/scripts/rvm"
于 2013-03-27T07:10:41.877 に答える