Xcodeでアプリをテストしていない場合、iOSシミュレーターで何が起こるかを見たいです。
たとえば、Safariシミュレーターでリンクを開いた場合、コンソールで何が起こるかを確認します。Webアプリをインストールした場合、コンソールで押しているリンクを確認します。
これどうやってするの?
XcodeまたはTerminalで表示したいのですが、別のソフトウェアを使用する必要がある場合は問題ありません。
iOSシミュレーター>メニューバー>デバッグ>システムログを開く
古い方法:
iOSシミュレーターは、ログを直接stdoutに出力するため、システムログと混ざったログを確認できます。
ターミナルを開き、次のように入力します:tail -f /var/log/system.log
次に、シミュレーターを実行します。
編集:
これにより、Mavericks/Xcode 5での動作が停止しました。これで、独自のフォルダーのシミュレーターログにアクセスできます:~/Library/Logs/iOS Simulator/<sim-version>/system.log
Console.appを使用してこれを確認するか、テール(iOS 7.0.3 64ビットなど)を実行するだけです。
tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log
編集2:
それらは現在、~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
にあります
tail -f ~/Library/Logs/CoreSimulator/<simulator-hash>/system.log
IOSシミュレーターのコンソールは、デスクトップSafariを介して表示できます。これは、デスクトップSafariを使用して物理iOSデバイスのコンソールを表示する方法に似ています。
シミュレーターが実行されていて、Webページが開いているときはいつでも、デスクトップサファリの[開発]メニューの下に、iOSシミュレーターコンソールを表示できるオプションがあります。
開発-> iPhone Simulator-> サイト名
IOS 8およびiOS 9では、この場所は次のとおりです。
~/Library/Logs/CoreSimulator/<DEVICE_CODE>
したがって、次のように機能します。
tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log
DEVICE_CODE
値は、次のコンソールコマンドで確認できます。
instruments -s devices
instruments -s
に依存しないでください。コマンドラインからシミュレータを操作するために公式にサポートされているツールはxcrun simctl
です。
デバイスのログディレクトリは、xcrun simctl getenv booted SIMULATOR_LOG_ROOT
で見つけることができます。これは、場所が変わっても常に正しいです。
これでos_log
に移行したので、ホストMacでConsole.appを開くのが簡単になりました。起動したシミュレーターは、物理デバイスと同様に、左側にログソースとして表示されます。起動したシミュレーターでログコマンドを実行することもできます。
# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug
# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'
# a log dump that Console.app can open
xcrun simctl spawn booted log collect
# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`
シミュレータのWebページでSafari開発ツール(JSコンソールを含む)を使用する場合:シミュレータの1つを起動し、Safariを開き、MacのSafariに移動すると、シミュレータが表示されますメニュー。
Safariアドレスバーからドラッグしてシミュレータウィンドウにドロップすることで、シミュレータでURLを開くことができます。 xcrun simctl openurl booted <url>
を使用することもできます。
Swiftを使用している場合、println
はデバッグログ(xCodeのデバッグ領域に表示される)にのみ出力されることに注意してください。 system.logに出力する場合は、昔と同じようにNSLog
を使用する必要があります。
次に、メニューから[デバッグ]> [システムログを開く...](cmd + /)でシミュレータログを表示できます。
末尾の/var/log/system.log
は機能しませんでした。 Console.app
を使用してログを見つけました。彼らは~/Library/Logs/iOS Simulator/{version}/system.log
XCode> 6.0 AND iOS> 8. XCodeバージョン> 8.0の場合、以下のスクリプトが機能します
以下の小さなスクリプトを使用して、シミュレータのログをシステムコンソールに表示します。
#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log
Grepで使用されるシミュレータータイプを引数として渡すことができます。上記の投稿で述べたように、Xcodeバージョンに応じて使用可能なシミュレーターのタイプを表示するsimctlおよびInstrumentsコマンドがあります。利用可能なデバイス/シミュレーターのリストを表示するには。
xcrun instruments -s
OR
xcrun simctl list
これで、デバイスコードOR Simulatorタイプを引数としてスクリプトに渡し、grep内の「iPhone 6(8.2 Simulator)」を$ 1に置き換えることができます。