iOS(iPhone、iPad、iPodTouch)リアルタイムコンソールログターミナルを表示


123

リアルタイムコンソールログを表示して、NSLogや他のデバッグメッセージをadb logcatなどのリアルタイムで表示する方法はありますか?


1
あなたはあなたが同等のIOS相当が欲しいと言っていますUtilities/Console.appか?
BryanH 2011

回答:


155

Xcode 6 用の技術Q&A QA1747 デバッグデプロイ済みiOSアプリで文書化されているソリューションは次のとおりです。

  1. XcodeメニューからWindow-> Devicesを選択します。
  2. 左側の列でデバイスを選択します。
  3. 右側のパネルの左下にある上向きの三角形をクリックして、デバイスコンソールを表示します。

上向き三角形のスクリーンショット


4
私の意見では、これが最も簡単な解決策です。
Bart van Kuik、2015年

Xcode 6.4では、「デバイスログの表示」というボタンが表示されますが、クラッシュログが表示されます。コンソールログを取得する方法がわかりません。
Chris Prince

4
上向き三角形のアイコンのスクリーンショットを追加しました。
マリアンチェルニー

1
printステートメントはログに記録されず、にのみ記録されますstdoutNSLog代わりに使用してください。または、stdoutコードを追加したファイルにリダイレクトできる場合があります。クラッシュはログに記録され、「デバイスログの表示」ボタンを使用してアクセスできます。
マリアンチェルニー

3
このボタンはxCode 9.3で廃止されました。「Console.app」ボタンが追加され、よりわかりやすくなりました。
rustyMagnet

79

編集:@cbownsソリューションを使用してください-deviceconsoleはiOS9と互換性があり、はるかに使いやすくなっています。

これはターミナルでiDeviceのシステムログを表示するオープンソースプログラムです(tail -Fと同様の方法で)。脱獄は必要ありません。出力は完全にgrep可能であるため、フィルター処理してプログラムからの出力のみを表示できます。このソリューションの特に優れている点は、アプリがXCodeからデバッグモードで起動されたかどうかにかかわらず、ログを表示できることです。

方法は次のとおりです。

https://github.com/benvium/libimobiledevice-macosx/zipball/masterの私のgithubアカウントからMac OS Xのlibimobiledeviceバイナリを取得し ます。

こちらのインストール手順に従ってください:https : //github.com/benvium/libimobiledevice-macosx/blob/master/README.md

デバイスを接続し、Terminal.appを開いて次のように入力します。

idevicesyslog

Upは、デバイスのシステムログのリアルタイム表示をポップアップします。

コンソールアプリであるため、grepなどのUNIXコマンドを使用してログをフィルタリングできます。

たとえば、特定のアプリからのすべてのログメッセージを表示します。

idevicesyslog | grep myappname

http://pervasivecode.blogspot.co.uk/2012/06/view-log-output-of-any-app-on-iphone-or.htmlにある私のブログから引用


4
これはiOSシミュレータでは機能しないようです。残念。No device found, is it plugged in?
ashes999 2013

iOS10では動作しません。「usbmuxd_send:送信時のエラー-1:壊れたパイプ」解決方法
Victor Choy 2016

2
sudoなしでidevicesysを実行すると、「サービスcom.apple.syslog_relayを開始できませんでした」という不可解なエラーが発生します。多分それはあなたがそれをインストールする方法または何かに依存します。
ビョルンロシュ

それがうまくいかない場合は、これを行ってください...brew uninstall libimobiledevice ideviceinstaller && brew install --HEAD libimobiledevice ideviceinstaller
Akshet 2017

77

2つのオプション:

libimobiledevicehomebrewを介してインストールでき、優れた動作をします。そのidevicesyslogツールはdeviceconsole(下記)と同様に機能し、デバイスのsyslogをワイヤレスで表示することをサポートします(!)

Tumblr tl; drで詳しく説明しました

brew install libimobiledevice
idevice_id --list // list available device UDIDs
idevicesyslog -u <device udid>

デバイスがUSB経由で接続されているか、ローカルワイヤレスネットワークで利用できる。

2013年から:deviceconsole rpetrichからは、上記ideviceconsoleよりもはるかに少ないwackedアウトソリューションです。私のフォークは Xcode 5ですぐビルドおよび実行され、ビルドアクションはバイナリをインストールし/usr/local/binて使いやすくします。

追加の役立つ情報として、次のスタイルで使用します。これにより、シェルの履歴で目的のデバイスを簡単に見つけることができ、印刷される不要な>行が削除deviceconsoleされます。

deviceconsole -d -u <device UDID> | uniq -u && echo "<device name>"

この投稿をありがとう。それはまさに私が探していたものです。GUIモバイルLogCatツールにiOSを追加するのが待ちきれません:github.com/yepher/LogCat
Yepher

2
これは素晴らしいです-コンパイルして実行するのに2分かかりました。これは受け入れられる答えになるはずです。
Nick Farina

これは素敵な解決策です。そして、コレクションがiOS8で引き続き機能することを追加したかっただけです(本来のとおりです)
Kelly

1
@BugaBuga最新のものを使用していることを確認してくださいlibimobiledevice。(有線および無線のログ表示は10.11のMacとiOS 10.2のiPhoneで動作します)
2017年

1
github.com/libimobiledevice/libimobiledevice/issues/356。使用:brew install --HEAD libimobiledevice。私のために働いた。
rustyMagnet

21

Console.appMac osXでアプリケーションを開くだけです。

あなたは下でそれを見つけることができますApplications> Utilities> Console

アプリケーションの左側に、接続されているすべてのデバイスが一覧表示されます。


2
これは素晴らしいソリューションです。検索機能を使用して、デバイスのライブ/現在のログを基本的に「grep」できます。
ロブ

14

フリーウェアのiOSコンソールをお試しください。デバイスをダウンロードして起動し、接続するだけです-et voila!


1
興味深いですが、Macに複数接続している場合は、コンソールログを表示するデバイスを選択できません。
leolobato 2015年

とてもシンプルでiOS 12でうまく動作します。私は、開発者にとってロギングがいかにシンプルであるかを知り、そしてここに到達することに不満を感じます。ありがとうPeter
FreeAppl3

なぜConsole.app[macOSでネイティブに出荷される]のですか?
rustyMagnet

6

これはあなたが探しているものかもしれません: Xcode Organizer


はい...しかし、何らかの理由で、XcodeオーガナイザのコンソールはGUIウィンドウ内にあるため、リアルタイム性が低下します。私はデバイスのシェルを直接tail -f <logfilename>に呼び出す方法を望んでいました
Arunabh Das

ジェイルブレイクされている場合にのみ、デバイスでシェルを取得できます。
progrmr 2011

progrmrに感謝します。あなたの答えを正解として受け入れたいのですが。ジェイルブレイクされたデバイスでシェルを取得する方法についてのリンクも投稿していただけませんか?ありがとう!!
アルナフダス

@ArunabhDas受け入れられた回答をBen Claytonからのidevicesyslog回答に変更することを検討してください。彼のソリューションは、CoronaSDKプラットフォームを使用してiOSアプリでアプリ内購入をデバッグするためにまさに探していたものでした。Xcode Organizerは、ログ情報の表示に時間がかかり、面倒でした。
アンソニーF

5

デバイス>端末出力はiPhone設定アプリにあります

ここ:http : //support.apple.com/kb/DL1465


1
そのリンクは無効です。アプリの更新された名前はApple Configuratorであり、こちらから入手できます。itunes.apple.com / us / app / apple-configurator / id434433123?mt=12ただし、OS X 10.10+です。
ThomasW、2015年

1
@ThomasW:残念ながら、Apple Configuratorには、iPhone構成ユーティリティが行う/行ったようにデバイスログを表示する機能がないようです。
newenglander 2015年

1
します。メニューから自動化ツールをインストールするだけです。krypted.com/iphone/...
SuneKjærgård

2

次の3つのオプションがあります。

  • Xcodeオーガナイザー
  • syslogd + openSSHを使用した脱獄デバイス
  • すべてのSTDERRとSTDOUTをファイルにリダイレクトし、そのファイルを "tail -f"するためにdup2を使用します(この最後の1つは、デバイス上のファイルをテールするという同じ問題で立ち往生しているため、シミュレーターのことです)。

したがって、CydiaからsyslogdとOpenSSHをインストールするだけで2º1を取得するには、syslogdを実行するために再起動が必要です。(Windowsのターミナルまたはパテ経由で)デバイスにsshセッションを開き、「tail -f / var / log / syslog」と入力します。ワイヤレスリアルタイムシステムログです。

3ºを試してみたい場合は、オンラインで「dup2」を検索してください。これはシステムコールです。


0

MacのSafariでiOSデバイスのコンソールを表示するには(Macのみのようです):

  1. iOSデバイスで、[設定]> [Safari]> [詳細設定]に移動し、Webインスペクターをオンにします
  2. iOSデバイスで、SafariにWebページをロードします
  3. デバイスをMacに直接接続する
  4. Macで、Safariの開発者メニューをまだアクティブにしていない場合は、[設定]> [詳細]に移動し、[メニューバーに[開発]メニューを表示]を選択します。
  5. Macで、[開発]> [iOSデバイス名]> [Webページ]に移動します

Safariのインスペクタが表示され、iOSデバイスのコンソールが表示されます。


3
アプリのログではなく、Safariコンソールのログを確認できます。
ガンマポイント

これはエミュレータで機能します...実際のデバイスで試したことはありません。
sketchthat

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.