mochotomochotoロゴ

[Flutter]アプリが終了(Terminated)状態のデバッグをする

広告Flutter
2024年03月30日

Flutter でアプリリンクやプッシュ通知を実装する時に、アプリが 終了(Terminated)状態の場合の処理をデバッグする機会があったので、その方法をまとめました。
実機でデバッグを想定しています。

#iOS の場合

#1. XcodeでSchemeの設定

Xcodeでプロジェクトを開きます。open ios/Runner.xcworkspace

Runner > Scheme > Edit Scheme を選択します。

Xcode スキーマ編集選択
Xcode スキーマ編集選択

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

Xcode スキーマ編集画面の設定
Xcode スキーマ編集画面の設定

#2. Xcodeでデバッグ

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

Xcode スキーマ編集画面の設定
Xcode スキーマ編集画面の設定

この状態で、アプリを起動します。
一度アプリを起動すると 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!fora.comfora.com
How to debug deep linking for a terminated Flutter app on iOS

以上、Flutter でアプリリンクやプッシュ通知のアプリがターミネート状態の場合をデバッグする方法をまとめました。 どなたかの参考になれば幸いです。