flutterのデバッグをssh経由で行う
私はこちらの記事で紹介したように、Macを開発サーバーとしたリモート開発を行っています。
今回は、flutterの開発を行うために、デバッグ(確認できているのはAndroidエミュレータのみ)手順を共有します。
環境構築
サーバー(Mac)側
-
flutterのインストール
今回はmiseを使ったインストール方法を紹介させていただきます。
miseをインストールしておけば、nodeやPythonなど色々な言語のバージョン管理が簡単にできますし、言語の導入もコマンド一つで完了するのでおすすめです。brew install mise echo 'eval "$(mise activate zsh)"' >> ~/.zshrc mise use -g flutter@3.27.3-stable
vscodeでflutterの拡張機能を使っている場合は、settings.jsonに以下の設定を追加してください。
"dart.flutterSdkPath": "/Users/[ユーザー名]/.local/share/mise/installs/flutter/3.27.3-stable"
-
Android Studioのインストール
こちらの手順に従ってインストールを行います。- Android Studio DMG ファイルを起動します。
- アプリケーション フォルダに Android Studio をドラッグ&ドロップしてから、Android Studio を起動します。
- 以前の Android Studio の設定をインポートするかどうかを選択して、[OK] をクリックします。
- Android Studio セットアップ ウィザードを完了します。開発に必要な Android SDK コンポーネントのダウンロードも含まれています。
クライアント(Windows)側
クライアントでは、adbとscrcpyが使えるようにインストールを行います。
winget install Google.PlatformTools
winget install --exact Genymobile.scrcpy
実行方法
実行可能状態のプロジェクトがある前提で進めます。
サーバー(Mac)側
-
Androidエミュレータ起動
Android Studioから任意のエミュレータを起動してください。
adb devices
を実行して、エミュレータが起動していることを確認します。
起動していない場合、以下のコマンドで、adbサーバーを再起動します。adb kill-server adb start-server adb devices
2.アプリ実行
flutter run
を実行して、androidのエミュレータ端末でアプリを実行
クライアント(Windows)側
-
サーバーに接続
サーバーの5555ポート(エミュレータのデフォルト)に接続します。私の場合は、vscodeのssh接続時に、configファイルにLocalForward 15555 127.0.0.1:5555
オプションをつけて接続しています。 -
adbの実行
以下のコマンドで、adbサーバーに接続します。adb connect localhost:15555
-
scrcpyの実行
scrcpy
を実行すると、クライアント端末でエミュレータが起動します。
まとめ
リモート開発環境におけるflutterのデバッグ手順を紹介しました。flutterの開発は始めたばかりで、リモート環境の構築にすこし手間取ってしまったので、同じような方の参考になると幸いです。
iOSのデバッグも同じような仕組みでできるか、今後調査したいと思います。
Discussion