Closed9

Flutter で iOS / Android のシミュレーターでアプリを起動する

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

はじめに

  • Flutter でアプリを開発するときに実機ばかりを使ってシミュレーターを使っていない
  • したがってシミュレーターの起動の方法などがわからない
  • シミュレーターの方がアプリの動作を動画で収録したりするのに便利そう
  • このスクラップでは iOS と Android の両方で Flutter アプリを起動する方法について調べていく
薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

ワークスペースの作成

コマンド
flutter create hello_simulator
cd hello_simulator

ソースコードは編集せずにそのままにしておこう

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

Flutter のアップグレードに時間がかかる

flutter create hello_simulator を実行した時に下記のメッセージが表示された

メッセージ
┌─────────────────────────────────────────────────────────┐
│ A new version of Flutter is available!                  │
│                                                         │
│ To update to the latest version, run "flutter upgrade". │
└─────────────────────────────────────────────────────────┘

メッセージに従って下記のコマンドを実行、Flutter をアップグレードする

コマンド
flutter upgrade

すぐ終わるかと思ったら数分かかった、アップグレードに表示されたメッセージは下記の通り

メッセージ
Flutter 3.7.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7048ed95a5 (5 days ago) • 2023-02-01 09:07:31 -0800
Engine • revision 800594f1f4
Tools • Dart 2.19.1 • DevTools 2.20.1

Running flutter doctor...
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.1, on macOS 12.6.3 21G419 darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.3)
[✓] VS Code (version 1.75.0)
[✓] Connected device (2 available)
[✓] HTTP Host Availability

• No issues found!
薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

シミュレーターの軌道

  • VSCode の右下に "macOS (darwin)" と表示されている部分がある
  • これをクリックすると "Start iOS Simulator" とのリスト項目がある
  • もしかしてこれをクリックすると起動できる?

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

アプリ起動

  • アプリを起動するには main.dart で Fn + F5 を押す
  • VSCode 右上の Start Debugging ボタンを押しても OK
  • 普通に iOS アプリが立ち上がったのにびっくりした
  • iOS 実機で実行する時のように XCode で署名の設定とかいらない
  • iOS 実機で設定を変更して署名を信頼したりする必要もない
  • iOS 実機だとアプリが転送できたりできなかったりする時がある
  • それが無いだけでとても快適

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

念のため Android も検証してみる

  • Android はたくさんあってどれを使えば良いかわからない
  • とりあえず "Start Android ARMv7a" を選んでみる
  • 下記のエラーメッセージが表示されて起動できなかった
エラーメッセージ
Failed to launch Android ARMv7a: Error: Emulator didn't connect within 60 seconds
  • 次は "Start Android Accelerated x86" を試してみる
  • こちらも同様のエラーメッセージが表示されてダメだった
エラーメッセージ
Failed to launch Android Accelerated x86: Error: Emulator didn't connect within 60 seconds
  • 多分ダメだろうけど念のため "Start Nexus 5X API 28" も試してみる
  • これは動いた!

薄田達哉 / tatsuyasusukida薄田達哉 / tatsuyasusukida

念のため cold boot の方も試してみる

  • "Start Android ARVv7a mobile emulator (cold boot)" の方も試してみたがダメだった
  • "Start Android Accelerated x86 mobile emulator (cold boot)" の方も試してみたがダメだった
  • とりあえず "Start Nexus 5X API 28" が動けば大丈夫そうなので深くは調べないことにする
  • 調べるときは下記の Stack Overflow が参考になりそう

https://stackoverflow.com/questions/55677874/failed-to-launch-emulator-error-emulator-didnt-connect-within-60-seconds

このスクラップは2023/02/07にクローズされました