ども、@kimihom です。
iOSアプリの開発をしていると、以下のようなケースでログが見れないことに不便さを感じることがある。
- バックグラウンドで動作している時のログを見たい
- iOS の電源を再起動した後のログを見たい
- その他 アプリを開いた状態 以外でのログを見たい
これらのケースでログを見ることはできないと諦めていたのだけど、調べると方法があったのでまとめておく。
OSLog の利用
シンプルに1つのクラスを作るのが良さそうだ。
import os class MyLog { static let nsLog = OSLog(subsystem: "jp.co.myapp", category: "ログ") static func p(_ log: String) { os_log("%@", log: nsLog, type: .default, log) } } // 実際の利用 MyLog.p("sample")
まず、このログが Xcode でのアプリ実行で出力される通常のログを確認しよう。
MyApp[29609:10452863] [ログ] sample
というようなログが出ていればOKだ。
他の方法でログを見る
Xcode 13 でのログ確認の方法
Xcodeメニュー > Window > Devises and Simulators > iPhoneを選択 > Open Console
コンソールアプリを起動する方法
Mac メニューより "コンソール" を起動 > デバイスを iPhone に指定
その後、検索に "ログ" として 開始 を押す。
すると、このコンソールでのログに、出力されるようになる。これによって、どんな状態でもログを確認することができるようになった。
"ログ" と日本語のカタカナで指定した理由はここで、"log" とかで指定すると大量のiPhoneのログが出てきてしまうことになる。
終わりに
アプリのログだけだとどうしても見れなくて困ったケースがあり、同じように悩んだ方は是非試してみていただければと思う。
引き続きiOSアプリ開発を続けていこう。