macOSにFVM+Flutterの開発環境を構築する手順の備忘録です。
- クリーンインストール直後の M4 Mac Mini / macOS Sequoia 15.1で確認した手順です
- この手順に沿うとmacOS,iPhone,Web用のFlutterアプリが開発できるようになります
- 記事末尾のオプションの手順まで実行すると、Android版アプリも開発できるようになります
Xcode のインストール
Xcode 16.2 を AppStore からダウンロードしてインストールします。
インストールしたら一度 Xcode を起動して、Platform Support の iOS にチェックを入れて、Download & Install を押します。
依存ライブラリやiOSシミュレータなどのインストールが始まるので、終わるまで待ちます。
インストールが終わるまえに先の手順をすすめることはできますが、インストールが終わっていない場合、後述の動作確認で flutter doctor
の結果がエラーになりますので注意してください。
インストールが終わったら、以下をTerminalから実行してコマンドラインからXcodeが利用できるようにします。
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Homebrew のインストール
Terminalを開いてHomebrew のサイトのインストール手順どおりにインストールします。
初めて Homebrew を入れた場合は /opt/homebrew/bin にパスが通っていないので警告が出ます。
インストール完了後に表示される Next steps: のコマンドを実行して、パスを通します。
終わったら
brew help
を実行して brew にパスが通っていることを確認します。
Cocoapods のインストール
普通にやると gem を install するだけですが、macOS Sequoia 標準のRubyはまだ2.6系で古いので、
sudo gem install cocoapods
だけではインストールできません。
無理やりインストールすることもできなくはないのですが、brew 経由でインストールするのが簡単です。
brew install cocoapods
FVM のインストール
Homebrew経由でインストールします。
brew tap leoafarias/fvm
brew install fvm
Flutter SDK のインストール
fvm install 3.24.5
動作確認
一旦、インストールしたFlutter SDKをグローバルにして動作確認します。
fvm global 3.24.5
fvm flutter doctor
上記で表示される Flutter SDK のバージョンが期待どおりで、かつAndroid関係以外のエラーが出ていなければ、セットアップは問題なく完了です。
オプション
Visual Sutdio Code
Visual Studio Code 1.77 以上をインストールした後、VS Code を起動して Flutter extension for VS Code をインストールします。
Android 開発
以下の手順を行うと、Android版アプリも開発できるようになります。
- Android Studio 2023.3.1 (Jellyfish)以上をインストールする
- Flutter 公式サイトの Configure Android development の手順を行う
FAQ
iOS版で、flutter runするとログが出ない
以下のようなログが出て、アプリのログを取得できないことがあります。
Oops; flutter has exited unexpectedly: "SocketException: Send failed (OS Error: No route to host, errno = 65), address = 0.0.0.0, port = 5353".
これは利用中のターミナルに権限がなく、ローカルネットワーク接続がブロックされている場合に起こります。
macOSの設定で、System Settings->Privacy & Security->Local Network->[使っているターミナルまたはIDE]を開いて、スイッチをONにすると解決します。
Android版でビルドエラーが起こる
Android Studio 2024.2.2 (Ladybug) + Flutter 3.24.5 で、Android版をビルドすると、compileGroovyタスクでエラーになる場合があります。
* What went wrong:
Execution failed for task ':gradle:compileGroovy'.
> Failed to run Gradle Worker Daemon
> A problem occurred starting process 'Gradle Worker Daemon 6'
これはOSの地域設定(日付と時刻の書式)をUSにすると強引に直せますが、Gradleのバージョンを8.4に上げてやると解消します。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip # ココ
またFlutterのplus系プラグイン(connectivity_plusなど)を使うと、以下のようなエラーが出ます。
* What went wrong:
Execution failed for task ':connectivity_plus:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':connectivity_plus:androidJdkImage'.
これは settings.gradle で Android Plugin を 8.3.1 に上げると解消します。
...
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.3.1" apply false // ← ココ
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
補足
上記では、Gradle バージョン 8.4 と Android Gradle Plugin バージョン 8.3.1 を選択していますが、これはconnectivity_plusプラグイン6.1.2のビルド設定を参考にした値です。