概要
アプリのプロセスをkillした状態から、様々な方法でAPPを立ち上げる時の挙動をBreakpointを差し込んでデバッグしたい場合がありました。
ただ、Xcodeのデフォルト設定ではアプリをビルドするとすぐにアプリが立ち上がってしまうため、DeepLinkやPush通知からの起動をデバッグできません。
今回はこの解決方法をまとめておきます。
方法
まずProject name > Edit Schemeを選択
続いてRun > Info > Launch を "Wait fot the executable to launched"にします。
これにより、Xcodeはアプリがシステムによって起動されるまでデバッガを待機するようになります。
(= デバッガがアタッチされ、デバッグ可能になってからアプリが起動するようになります)
以上で設定は完了です。
あとは、シミュレータ上でアプリを上にスワイプしてkillしましょう。
そしていつも通りビルドを実行してください。
すると
このように、デバッガのアタッチを待っている状態になります。
あとはデバッグしたい起動方法でアプリを起動すると、しっかりBreakpointでとまってくれます。
使いどころ
1. Deeplink(カスタムURLスキームやユニバーサルリンク)でのアプリ起動のデバッグ
- Deeplinkを開いたときに、
scene(_:openURLContexts:)
(SceneDelegate)やapplication(_:open:options:)
(AppDelegate)が正しく動作するかを確認したい場合
2. プッシュ通知でのアプリ起動のデバッグ
- フォアグラウンド / バックグラウンド / kill状態の各パターンで通知をタップしたときの動作を確認する
- userNotificationCenter(_:didReceive:withCompletionHandler:) やdidFinishLaunchingWithOptions 内の処理が期待通り動くかチェックしたい場合
おわり
モバイルアプリ開発は、バックエンドとか以上にエディタの使いこなしも大切になってきますよね...
今度この記事のAndroid版(Android Studio版)も書こうかな。