Xcode 11に切り替え後「Failed to build gem native extension」エラーが発生する

一部のユーザーでは、CircleCI で Xcode 10.x イメージから Xcode 11 イメージに切り替え後に bundle install を実行する際に、以下のエラーが発生する場合があります。

重要なエラーは以下になります。

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

このエラーが発生する理由

Xcode の最近のバージョンでは、過去に同梱されていた macOS SDK ヘッダーパッケージが削除されました。このパッケージには Ruby Gems のビルドに必要なさまざまな Ruby 2.3(Ruby システム)のヘッダーがインストールされていました。 これらのヘッダーがないと、一部の Gems が bundle install で失敗し、次のエラーメッセージが表示されます。

mkmf.rb can't find header files for ruby at/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

解決方法

これは、Xcode 11 イメージに付属する chruby で利用可能な Ruby バージョンのいずれかに切り替えることで解決できます。 利用可能なRubyのバージョン は、 Software Manifestsで確認できます。

Using Custom Ruby Versions のステップに従い、Ruby 2.5 または Ruby 2.6 に切り替えます。その後 config.yml を更新、新しいコミットをプッシュし、新しいビルドをトリガーします。

 

この記事は役に立ちましたか?
22人中8人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。