概要
Flutterを利用してiOSアプリを作成していたのだが、高解像度の画像をImage.networkで取得して表示するので、ページの読み込みに時間がかかっていた。
そこで、cached_network_imageをpubspec.yamlに記述してflutter pub get
した。
画像の処理を書き換えて、いざflutter run
すると、以下のようなエラーが発生した。
flutter doctor
を実行
どうやらCocoaPodsがおかしいみたいだ。
installしているのにbrokenやらnot workingやら、内心「ハ・・・?」って感じ。
試したこと
CocoaPodsの再インストール
エラーにCocoaPods Guidesを参照してre-installしろとご丁寧に書いてある。
言われるがままに実行してみる。
$ sudo gem install cocoapods
変化がなかったので、一度アンインストールして入れ直す。
$ sudo gem uninstall cocoapods && sudo gem install cocoapods
flutter doctor
してみたが、これも同じエラーが返された。ビルドも失敗。
再起動
再起動後、flutter doctor
したが、変化なし。
brewでCocoaPodsをインストール
まずは、既存のCocoaPodsをアンインストールする。
$ sudo gem uninstall cocoapods
次に、brewでインストールしてみた。
$ brew install cocoapods
flutter doctor
したが、変化なし。
解決策
CocoaPodsはRubyで動いているので、Rubyバージョンを上げることによって解決した。
今回は、rbenvを用いてアップグレードした。
$ brew install rbenv
その後、バージョン一覧を取得
$ rbenv install --list
2.6.9
2.7.5
3.0.3
3.1.0
jruby-9.3.2.0
mruby-3.0.0
rbx-5.0
truffleruby-21.3.0
truffleruby+graalvm-21.3.0
最新版をインストールする。
現時点(2022/01/13)での最新版は3.1.0
本体にインストールされていたのは2.6.8だった。逆になんで今まで動いてたんだ...?
$ rbenv install 3.1.0
$ rbenv global 3.1.0
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.zshrc:
eval "$(rbenv init -)"
次に、上記のeval "$(rbenv init -)"
を、~/.zshrcに追加した。
最後に、source ~/.zshrc
をして、flutter doctor
を実行すると、正常に動作した。
一日中ゴニョゴニョしてしまったので、忘備録として。