LoginSignup
2
0

【Flutter】flutter doctor実行時に発生したエラーを解消した

Posted at

はじめに

これまで、Flutterを触る機会が全くありませんでしたが、急遽勉強する必要性が生じたため、以下の書籍を用いてFlutterの学習をしています。

その中で、環境構築のところでエラーが発生したので、解決方法をメモしました。

ちなみに、KindleUnlimitedの対象なので、会員の方は無料で読むことができます。

一応、Kindleストアのリンクを貼っておきます。

まだ途中までしか読んでいませんが、Amazonレビューの評価も比較的高く、読みやすいです。

スマホで動くアプリを作ろう!ゼロから始めるFlutter実践入門編-①-シンプルなアプリを作ってみよう
IMG_1464.png

記事の中で、わかりにくい点や認識の誤っている点などあれば、お気軽にご指摘いただけると幸いです。

罵倒して頂いても構いません。

ダメ出し歓迎です。

課題

Flutterの環境構築を行った後に、設定に問題がないかを確認するため、flutter doctor を実行したところ、Xcodeの項目でエラーが発生した。

エラー画面

Untitled.jpeg

エラーコード

[!] Xcode - develop for iOS and macOS (Xcode 15.1)
    ✗ Unable to get list of installed Simulator runtimes.
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin us![Untitled 1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1602300/99c37416-fba0-8135-4b54-a5d8e86307e7.jpeg)
age on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

動作環境

  • macOS 14.2(Sonoma)
  • Xcode  15.1

前提条件

  • Homebrew(パッケージ管理ツール)がインストールされている
  • Xcodeがインストールされている
  • Vimの使用経験がある

対策

まずは、以下のエラーから対応します。

    ✗ Unable to get list of installed Simulator runtimes.

上記のエラーは、XcodeのiOSシミュレータがインストールされていないか、最新でないことが原因のようなので、Xcodeのアプリを起動し、Settingsを確認します

Untitled 1.jpeg

Settingsを開いたら、Platfomsタブに移動し、シミュレータのインストール状況を確認します。

私の場合、下図の通りiOSのシミュレータがインストールできておらず、ステータスがGetになっているため、ボタンをクリックして、iOSのシミュレータをインストールします。

ファイルサイズが7GB弱あるので、5〜10分程度かかるかと思います。

Untitled 2.jpeg

この状態で再度flutter doctorを実行すると、一つ目のエラーが解消されていることが確認できました。

[!] Xcode - develop for iOS and macOS (Xcode 15.1)
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin
        code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.

それでは、残っているエラーの方を解消したいと思います。

書籍の中で、CocoaPodsという依存関係管理ツールをインストールするよう指示があったので、インストールコマンドを実行していたのですが、正しくインストールできていなかったようです。

再度、イントールコマンドを実行して、エラーの内容を確認したいと思います。

下記、インストールコマンドになります。

コマンドを実行するとパスワードの入力を求められますが、これはパソコンのロックを解除するパスワードと同じものを入力する形になります。

sudo gem install cocoapods

上記のコマンドを実行した結果、以下のようなエラー文が出力されていました。

ERROR:  Error installing cocoapods:
	The last version of drb (>= 0) to support your Ruby & RubyGems was 2.0.5. Try installing it with `gem install drb -v 2.0.5` and then running the current command again
	drb requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.
MacBook-Pro-4:~ hoge$ sudo gem install cocoapods
Password:
ERROR:  Error installing cocoapods:
	The last version of drb (>= 0) to support your Ruby & RubyGems was 2.0.5. Try installing it with `gem install drb -v 2.0.5` and then running the current command again
	drb requires Ruby version >= 2.7.0. The current ruby version is 2.6.10.210.

エラーメッセージの内容からすると、PCにインストールされているRubyのバージョンが2.6と低く、CocoaPodsのインストールに必要なdrbライブラリとの互換性がないようです。

ライブラリをインストールするには、Rubyのバージョンが2.7以上である必要があるため、以下のコマンドを実行して、Rubyのバージョンアップを行います。

brew upgrade ruby

そうしたところ、以下のエラーが発生しました。

Error: ruby not installed

エラーメッセージの内容からすると、バージョン2.6のRubyがインストールされているはずですが、Rubyがインストールされていないというエラーが出ました。

どうやらこれは、Macに元々インストールされているRubyがバージョン2.6なのであって、Homebrew経由でインストールされているRubyは存在していないようです。

それでは、元々インストールされているRubyのバージョンアップを行えばいいかというと、それは好ましくなくないようです。

なぜなら、Macのシステムが、この元々インストールされているRubyを利用しているため、バージョンを上げてしまうことによって、Macのシステムの方に影響が出る可能性があるためです。

そのため、Homebrew経由で新たにRubyをインストールし、それを基にCocoaPodsをインストールする方法を取りたいと思います。

まずは、最新のパッケージを利用できるように、以下のコマンドで、Homebrewをアップデートしておきます。

brew update

Homebrewのアップデートができたら、Rubyをインストールします。

brew install ruby

続いて、システムにデフォルトで入っているRubyよりも、先ほどインストールしたRubyが優先されるようにパスを通したいので、vimで設定ファイルを開きます。

vim ~/.bash_profile

一番下の行に以下の内容を追加します。

export PATH="/usr/local/opt/ruby/bin:$PATH"

スクリーンショット 2023-12-31 午後6.25.20.jpg

上記の設定を反映するために、ターミナルを再起動し、rubyが正しくインストールされているか確認するために、以下のコマンドでrubyのバージョンを確認します。

ruby -v

Untitled 4.jpeg

Rubyのバージョンが、3.2.2となっているので、問題なさそうです。

続いて、以下のコマンドを実行し、cocoa podsをインストールしていきます。

sudo gem install cocoapods

インストールが完了したら、cocoa podsの環境変数を設定していきます。
以下のコマンドを実行し、cocoa podsのインストール場所を確認します。

gem list -d cocoapods

赤枠箇所のパスをコピーします。

Untitled 5.jpeg

vimで環境変数の設定ファイルを開きます。

vim ~/.bash_profile

一番下の行に以下の内容を追加します。

export PATH="先ほどコピーしたパス/bin:$PATH"

Untitled 6.jpeg
先ほどコピーしたパスの後ろに/binと入れているのは、Gemの実行ファイルが格納される場所がbinフォルダの中だからです。

環境変数の設定ができたので、以下のコマンドを実行して、cocoa podsのバージョンが正しく表示されるか確認します。

pod --version

Untitled 7.jpeg

バージョンが表示されたので、cocoa podsのインストールと環境変数の設定が正しくできていそうです。

結果

これで、flutter doctorの実行結果でエラーになっていた箇所について、対策できたはずなので、再度flutter doctorを実行してみます。

flutter doctor

Untitled 8.jpeg

無事、全てのチェック項目がOKになりました。

参考資料

【Flutter】Unable to get list of installed Simulator runtimesの対処法

Unable to get list of installed Simulator runtimes | Flutter doctor

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0