Gemでココアポッドをインストールするときのエラー


9

macOS Mojaveを使用していて、gemを使用してcocoapodsをインストールしようとすると、次のエラーが発生します。

ネイティブ拡張の構築。これにはしばらく時間がかかります...エラー:cocoapodsのインストールエラー:エラー:gemネイティブ拡張のビルドに失敗しました。

current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200302-707-1iveybq.rb extconf.rb mkmf.rbは、/ System / Libraryでrubyのヘッダーファイルを見つけることができません/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconfが失敗しました、終了コード1

Gemファイルは、検査のために/Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2にインストールされたままになります。/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.outに記録された結果

このエラーは、次のコマンドを実行すると発生します。

sudo gem install cocoapods

sudo gem install -n /usr/local/bin cocoapods

xcodeコマンドラインツールを既にインストールしており、実行すると次のメッセージが表示されます xcode-select --install

xcode-select:エラー:コマンドラインツールはすでにインストールされています。「ソフトウェアアップデート」を使用してアップデートをインストールしてください

コマンドとのxcodeライセンス契約にも同意しました sudo xcodebuild -license

エラーログ/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.outは次のようになります

現在のディレクトリ:/ライブラリ/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteco $ mkmf.rbは、/ System / Library / Frameworks / Ruby.fra $でルビのヘッダーファイルを見つけることができません

extconfが失敗しました、終了コード1

この問題を解決するにはどうすればよいですか?


Rubyはインストールされていますか?ruby --versionコマンドラインから試す
Robert Crabtree

こんにちは、私はこれを手に入れました。ruby 2.3.7p456(2018-03-28リビジョン63024)[universal.x86_64-darwin18]
Muljayan

ログファイルの内容は何ですか?/ライブラリ/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out
Robert Crabtree

エラーログを含めました
マルジャヤン

私はあなたがこれを見てとることをお勧めHERE
ロバート・クラブツリー

回答:


11

これに対する答えはここにありますが、この質問とは無関係です。以下は、最適に機能する回答の抜粋です。

macOS 10.14上のXcode 11の場合、これはXcodeをインストールしてコマンドラインツールをインストールし、

sudo xcode-select --install
sudo xcodebuild -license accept

問題は、Xcode 11にmacOS 10.15 SDKが含まれていることです。これには、ruby2.6のヘッダーが含まれていますが、macOS 10.14のruby2.3のヘッダーは含まれていません。これを実行すると、これが問題であることを確認できます

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

Xcode 11を搭載したmacOS 10.14では、存在しないパスを出力します

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

ただし、Xcode 11は内にmacOS 10.14 SDKをインストールします/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk。他の回答で提案されているように、古いヘッダーファイルをインストールしてシステムディレクトリを汚染する必要はありません。代わりに、そのSDKを選択すると、適切なruby2.3ヘッダーが見つかります。

sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

これは正しく印刷されるはずです

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

同様に、gem installそのSDKが選択されている間も動作するはずです。

現在のXcode 11 SDKを使用するように戻すには、

sudo xcode-select --switch /Applications/Xcode.app

6

sudo xcode-select --switch / Library / Developer / CommandLineTools

ruby -rrbconfig -e 'RbConfig :: CONFIG ["rubyhdrdir"]を出力する'


これでうまくいきました。ありがとう
dazzieta

1
  1. 実行:ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'ルビ設定を理解する。
  2. 出力が存在しないMacOSX10.15パスである場合。Like: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0 次のステップを実行して、構成を修正する必要があります。
  3. 実行する: sudo xcode-select --switch /Library/Developer/CommandLineTools
  4. ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'パスを変更したかどうかを確認するために、もう一度実行できます。
  5. 出力は /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

その後、gem installココアポッドをインストールするために実行できます!


私のために働いた:)
studentaccount4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.