Closed9
Flutter で iOS / Android のシミュレーターでアプリを起動する
はじめに
- Flutter でアプリを開発するときに実機ばかりを使ってシミュレーターを使っていない
- したがってシミュレーターの起動の方法などがわからない
- シミュレーターの方がアプリの動作を動画で収録したりするのに便利そう
- このスクラップでは iOS と Android の両方で Flutter アプリを起動する方法について調べていく
ワークスペースの作成
コマンド
flutter create hello_simulator
cd hello_simulator
ソースコードは編集せずにそのままにしておこう
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!
シミュレーターの軌道
- VSCode の右下に "macOS (darwin)" と表示されている部分がある
- これをクリックすると "Start iOS Simulator" とのリスト項目がある
- もしかしてこれをクリックすると起動できる?
iOS シミュレーターが起動した!
アプリ起動
- アプリを起動するには main.dart で Fn + F5 を押す
- VSCode 右上の Start Debugging ボタンを押しても OK
- 普通に iOS アプリが立ち上がったのにびっくりした
- iOS 実機で実行する時のように XCode で署名の設定とかいらない
- iOS 実機で設定を変更して署名を信頼したりする必要もない
- iOS 実機だとアプリが転送できたりできなかったりする時がある
- それが無いだけでとても快適
念のため 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" も試してみる
- これは動いた!
Android シミュレーターでアプリも起動成功
念のため cold boot の方も試してみる
- "Start Android ARVv7a mobile emulator (cold boot)" の方も試してみたがダメだった
- "Start Android Accelerated x86 mobile emulator (cold boot)" の方も試してみたがダメだった
- とりあえず "Start Nexus 5X API 28" が動けば大丈夫そうなので深くは調べないことにする
- 調べるときは下記の Stack Overflow が参考になりそう
このスクラップは2023/02/07にクローズされました