Flutterの環境構築をしている際に、CocoaPodsをインストールしようとするとエラーが出現し、回避策を試していちおううまくいった話を書いておきます。
環境
M1 Pro MacBookPro 16インチ(2021)
Ventura13.6
現象
CocoaPodsをインストールしようと下記を試みました。
sudo gem install cocoapods
すると下記のようなエラーが表示されインストールできません。
Building native extensions. This could take a while…
ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.
current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.16.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20230925-1106-16m82p9.rb extconf.rb
checking for ffi.h… *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
ライブラリが足りない
と言われています。さらにはコンフィグオプションが必要だとも。
むー。
いくつかネットをあたってみると、gemではなくbrewでのインストールがワークアラウンド(回避策)として出てくるのでこのあたりを試してみました。
Homebrewでのインストールを試みる
まずはHomebrewをインストールしていきます。
インストーラーを取得します。
curl -fsSL -o install.sh https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
つぎにインストールを実行します
/bin/bash install.sh
Homebrewのインストールが完了したら、Rubyのバージョン管理マネージャをインストールします。
brew install chruby ruby-install
そしてCocoaPodsをインストールします。
brew install cocoapods
むむ、brew linkが正常に完了しなかった旨のエラーメッセージが。
which cocoapodsで見つからないのでインストールが完了していないことがわかります。
コンフリクトしたファイルをリンクさせるために、以下を実行します。
brew link --overwrite cocoapods
2つのsymlink(Symbolic link file)が生成されました。
最後にCocoaPodsを最新に更新します。
brew update cocoapods
これでCocoaPodsのインストールが完了しました。
Flutter doctorを見てみると、Xcodeが問題なく正常になっているのでCocoaPodsが正しくインストールされたことがわかります。
以上、CocoaPodsのインストールに失敗したときにHomebrewで試してみたことのまとめでした!