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