Flutterの環境構築中にCocoapodsをインストールしようとしたら出たエラー解消方法の備忘録_φ(・_・ )
発生したエラー
extconf failed, exit code 1
翻訳
extconf 失敗しました、終了コード 1
原因
翻訳だけでは意味わからんので、
調べてみたところ以下の3つが考えられるそうです。
・Ruby のバージョンが古い。
・CocoaPods のバージョンが古い。
・CocoaPodsのFormulとCaskが競合している。
・CocoaPods の依存関係がインストールされていない。
解決手順
・それぞれの手順を踏む前にHomebrewが最新バージョンにアップデートされているか確認
brew update
Rubyアップデート手順
・Rubyの最新バージョンをインストール(執筆時点で最新)
brew install ruby@3.1
・Rubyのバージョンを確認
ruby -v
ここで最新になっていればOKです!
CocoaPods のバージョンが古い。
以下コマンドでバージョンアップ
brew upgrade cocoapods
CocoaPodsのFormulaとCaskが競合している。
・どこかのサイトに基本的にどちらかをインストールすれば片方は削除されるとあったのですが、あまり信じられないのでとりあえずどちらもアンインストールしてしまう。
Formulaアンインストールコマンド
brew uninstall cocoapods
Caskアンインストールコマンド
brew uninstall --cask cocoapods
CocoaPods をアンインストールすると、CocoaPods によってインストールされたライブラリやツールもアンインストールされます。
依存関係をインストールするコマンド
brew install readline libyaml openssl readline-devel libyaml-devel openssl-devel
最後に
そして最後にこのコマンドでインストール!
sudo gem install cocoapods
M1,M2チップの場合
Apple siliconの場合は以下の手順を踏まないと解消しないかもしれません。
・Finderからターミナルを右クリック>情報の順で開き、ロゼッタを使って開くをチェック
・以下コマンドを実行
sudo gem install ffi
参考サイト
https://qiita.com/Ficus/items/bdef5c2b504d7a4008fb
https://qiita.com/MachonglishproK/items/c0434a75f8eae556764b
https://www.delftstack.com/ja/howto/ruby/update-ruby-version-in-macos/