Android StudioでFlutterアプリ(iPhoneエミュレータ)を実行すると’Warning: CocoaPods not installed. Skipping pod install.’

Android StudioでFlutterアプリを開発してるときに遭遇したエラーです。


Warning: CocoaPods is installed but broken. Skipping pod install.
  You appear to have CocoaPods installed but it is not working.
  This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
  This can usually be fixed by re-installing CocoaPods. For more info, see https://github.com/flutter/flutter/issues/14293.
To re-install:
  sudo gem install cocoapods

Exception: CocoaPods not installed or not in valid state.

発生状況

Android StudioでFlutterアプリの開発をしており、実行環境にiPhoneエミュレータを指定した状態で実行ボタンをクリックするとエラーになる現象が発生しました。

整理すると次のような状況でした。

  • 参画しているプロジェクトのアプリを実行すると当該エラーが発生、同じアプリをターミナル上でflutter runと実行するとエラーにならない
  • 初期状態(カウンターアプリ)から作成したアプリはエラーにならない

ターミナル上でflutter runを実行すれば動かすことはできましたが、Android Studioの便利な機能を使えないと仕事に支障が出るので詳しく調査してみることに。

状況から察するにアプリ内のファイルが何か影響していると判断しましたが、同じプロジェクトに参画しているエンジニアに話を聞いてみると「ふつうに実行できたよ」と言われたので環境構築のやり方も考慮し調査することにしました。

試したこと

CocoaPodsを再インストール

エラーに「CocoaPodsが壊れている」と表示されているので、まずは言われた通りCocoaPodsを再インストールをしましたが、状況は変わらず・・・。

調べている中でCocoaPods1.7.5をインストールして解決したというissueを見つけたので試してみましたが改善せず。

rbenvをアンインストール

気になる点として僕のmacOSは標準のRubyを使っておらず、rbenvでRubyのバージョン管理をしています。

コレが何か悪さしているかもと思い、rbenvを削除して標準のRubyを使用するよう変更しました。

CocoaPodsをまた再インストールしましたが変わらず・・・。

Xcode、Android Studioを再インストール

rbenvを利用している状況で環境構築したので、Flutterの環境構築を最初から試してみようと思いXcode、Android Studioをアンインストールして再度公式の手順に則って構築しましたが、これでも状況は変わらず。

解決した方法

他にも記事やissueを漁って色々試しましたが、改善しなかったので半ば諦めていました。

が・・・・。

こちらのissueに載っている方法でダメ元で試してみたらビルドできました。

Warning: CocoaPods not installed. Skipping pod install.

やり方はAndroid Studioをターミナルから起動するだけ。


$ open /Applications/Android\ Studio.app

何故これで解決したのかは謎ですが、issueの投稿によると$PATHの解決に何か原因があるようです。

ビルドは実行できましたが、エラーになったのでpod installしたらアプリが立ち上がりました。
(このあたりは勢いでやってたので詳細を残していなかったです・・・m(__)m)


$ cd <app dir>/ios/
$ pod install

1度ビルドできると2回目以降はふつうに実行できるようになりました。

一応は開発できる環境が整いましたので一安心ですが、原因はわからないままなので機会があれば調べてみようと思います。

(cocoapodsのインストール関連だと思ってますが、知見がある方のコメントお待ちしております)

ABOUTこの記事をかいた人

Yusuke Ito

■バックエンド開発(TypeScript、PHP etc)をメインに活動し、2020年からFlutterによるアプリ開発案件に参画し、多様なニーズに応えれるエンジニアを目指す。 ■エンジニア目線でより良い提案、目的に合わせた仕様の提案が得意です。 ■Flutterに関する技術、個人アプリの開発、キャリア、書評をメインに発信しています。 ■筋トレ、ゴルフ、読書が趣味