[Flutter]アプリが終了(Terminated)状態のデバッグをする
Flutter でアプリリンクやプッシュ通知を実装する時に、アプリが 終了(Terminated)状態の場合の処理をデバッグする機会があったので、その方法をまとめました。
実機でデバッグを想定しています。
#iOS の場合
#1. XcodeでSchemeの設定
Xcodeでプロジェクトを開きます。open ios/Runner.xcworkspace
Runner > Scheme > Edit Scheme を選択します。

Run > Info 画面のLaunch で Wait for the executable to be launched を選択します。

#2. Xcodeでデバッグ
Run ボタンを押してアプリを実行します。
Waiting to attach to Runner ・・・ と表示されると、アプリが Terminated で待機している状態になります。

この状態で、アプリを起動します。
一度アプリを起動すると Terminate 状態には戻せないため、再度デバッグする場合は デバッグを停止してから再度実行します。
#3. ログを確認
Terminated 状態のログを確認するには、Mac のコンソールアプリ
を利用します。
Mac のコンソールアプリを開き、デバイスを選択します。
開始ボタンを押すと、ログが表示されます。

flutter のログは flutter: で検索すると見つけやすいです。
#つまづいた点
dart-define-from-file を利用していたのですが、Xcode でデバッグする際に環境変数を読み込むには・・・?となりましたが 先にビルドしておくと Xcode でデバッグできました。
flutter build ios --debug --dart-define-from-file=***.json#Android の場合
Android の場合は release モードでビルドすることで、Terminated 状態のデバッグができます。
flutter run --release#参考
How to debug deep linking for a terminated Flutter app on iOS
Save some time debugging your deep linked app!
以上、Flutter でアプリリンクやプッシュ通知のアプリがターミネート状態の場合をデバッグする方法をまとめました。 どなたかの参考になれば幸いです。
