Skip to content

Rubyバージョン指定エラーの解決方法: Gemfile requires 2.7.5 エラー対処

問題の説明

React Nativeプロジェクトをnpx react-native initコマンドで作成する際、次のエラーが発生する場合があります:

Your Ruby version is 2.6.8, but your Gemfile specified 2.7.5

この問題は主に以下の環境で発生します:

  • macOS Monterey以上
  • HomebrewでインストールしたRuby
  • React Native CLIによるプロジェクト生成時
  • CocoaPods関連の処理中に発生

エラーの本質的原因は、システムのRubyバージョンとReact Nativeプロジェクトが要求するRubyバージョンの不一致にあります。React NativeのiOSビルドシステムは特定バージョンのRubyを必要とするため、適切な環境設定が必要です。

重要な前提条件

  • Homebrewがインストールされていること
  • ターミナルでbrew --versionが動作すること
  • Rubyのバージョン管理ツール(rbenvなど)を使うことが推奨されます

根本的解決方法:Rubyバージョンマネージャーの使用

システム全体のRubyを変更せずに、プロジェクトごとに適切なバージョンを管理する方法が推奨されます。

rbenvを使った解決手順 (推奨)

ステップ1: rbenvのインストール

bash
# Homebrewで必要パッケージを更新・インストール
brew update
brew install rbenv ruby-build

# rbenvをシェルに統合
echo 'eval "$(rbenv init -)"' >> ~/.zshrc  # Zshの場合
# echo 'eval "$(rbenv init -)"' >> ~/.bashrc  # Bashの場合

# 設定をリロード
source ~/.zshrc # または source ~/.bashrc

ステップ2: 必要なRubyバージョンのインストールと設定

bash
# Ruby 2.7.5をインストール
rbenv install 2.7.5

# グローバルなデフォルトバージョンに設定
rbenv global 2.7.5

# 設定の確認
ruby -v # => ruby 2.7.5... と表示されること

ステップ3: プロジェクトの再作成

bash
# キャッシュをクリア
rm -rf ~/Library/Caches/Homebrew

# プロジェクト作成
npx react-native init AwesomeProject
bash
# バージョン確認
ruby -v
bash
# Homebrewキャッシュクリア
rm -rf ~/Library/Caches/Homebrew

rvmを使う方法 (代替案)

bash
# rvmインストール
curl -sSL https://get.rvm.io | bash -s stable

# Ruby 2.7.5のインストール
rvm install 2.7.5
rvm use 2.7.5 --default

# 確認
rvm list

トラブルシューティングと代替手法

プロジェクト生成後のフォローアップ

プロジェクトが一部生成された後にエラーが出る場合の対処法:

bash
# 生成されたプロジェクトフォルダに移動
cd AwesomeProject/ios

# Bundlerで依存関係を解決
bundle install
bundle exec pod install

# 元のフォルダに戻ってプロジェクト実行
cd ..
npx react-native run-ios

Gemfileを直接編集する方法(一時的対処)

注意

この方法は推奨されませんが、緊急時の回避策として使用できます。完全解決にはバージョンマネージャーを使用してください。

  1. プロジェクトフォルダ内のGemfileを開く:
bash
cd AwesomeProject/ios
nano Gemfile
  1. バージョン指定をシステムと一致するように変更:
ruby
# 変更前
ruby '2.7.5'

# 変更後(システムのバージョンによって調整)
ruby '2.6.8'
  1. 依存関係の再インストール:
bash
bundle install && bundle exec pod install

頻出問題と予防措置

システムRubyに関する警告

重要な原則

macOSのシステムRubyは変更しないでください。 OSの機能に依存しているため、破壊的な変更を引き起こす可能性があります。

  • システムRubyの確認: /usr/bin/ruby
  • ユーザーRubyの確認: /usr/local/bin/ruby

常にrbenvやrvmでユーザー領域のみでRubyを管理しましょう。

CocoaPodsインストールのベストプラクティス

bash
# rbenv環境での正しいインストール方法
gem install cocoapods

# システムRubyを使用しない明示的なPATH指定(回避策)
sudo gem install -n /usr/local/bin ffi cocoapods

環境設定の確認フロー

以下のコマンドで環境正常性を確認できます:

bash
echo "Ruby Version: $(ruby -v)"
echo "rbenv versions: $(rbenv versions)"
echo "Gem Path: $(gem env home)"

結論

Your Ruby version is x.x.x, but your Gemfile specified x.x.x エラーへの最適解は:

  1. rbenv/rvmで正確なRubyバージョンを管理
  2. グローバルバージョンをプロジェクト要件に一致させる
  3. システムRubyを変更せずユーザー領域で管理

React Nativeプロジェクトの安定性のためには、バージョンマネージャーの使用が必須です。エラーが解決しない場合は、~/Library/Cachesディレクトリをクリアし、システムを再起動すると有効な場合があります。