282

Xcodeでアプリをテストしていない場合、iOSシミュレーターで何が起こるかを確認したいと思います。

たとえば、Safariシミュレーターでリンクを開いた場合、コンソールで何が起こるかを確認します。または、Webアプリをインストールした場合、コンソールで押しているリンクを確認します。

これどうやってするの?

XcodeまたはTerminalで表示したいのですが、別のソフトウェアを使用する必要がある場合は問題ありません。

4

15 に答える 15

301

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

于 2012-04-15T20:12:01.470 に答える
246

デスクトップSafariを介してiOSシミュレータのコンソールを表示できます。これは、デスクトップSafariを使用して物理iOSデバイスのコンソールを表示する方法と似ています。

シミュレーターが実行されていて、Webページが開いているときはいつでも、デスクトップサファリの[開発]メニューの下に、iOSシミュレーターコンソールを表示するオプションがあります。

開発->iPhoneシミュレーター->サイト名

于 2013-01-19T15:14:20.530 に答える
118

シミュレータには、を開くためのオプションがありますconsole

Debug > Open System Log

またはを使用します

keyboard shortcut: ⌘/

シミュレーターメニューのスクリーンショット

于 2014-07-22T15:58:33.897 に答える
93

iOS8およびiOS9

iOS8およびiOS9では、この場所は次のようになります。

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

したがって、以下が機能します。

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

DEVICE_CODE値は、次のターミナルコマンドで確認できます。

instruments -s devices
于 2014-09-13T11:55:47.177 に答える
39

に頼るべきではありません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に移動すると、メニューにシミュレーターが表示されます。

URLをSafariアドレスバーからドラッグしてシミュレータウィンドウにドロップすると、シミュレータでURLを開くことができます。を使用することもできますxcrun simctl openurl booted <url>

于 2017-01-27T05:28:33.477 に答える
19

Swiftを使用している場合はprintln、デバッグログ(xCodeのデバッグ領域に表示されます)にのみ出力されることに注意してください。system.logに印刷する場合NSLogは、昔と同じように使用する必要があります。

次に、メニューの[デバッグ]> [システムログを開く...](cmd + /)からシミュレータログを表示できます。

于 2015-01-20T12:48:30.677 に答える
19

[iOSロガー]

ConsoleMacでアプリケーション([デバイス]でデバイスを選択)を使用してNSLog、、、os_logを使用して送信されたログメッセージを表示Loggerできます(関数からのログは表示されませんprint)。

また、([アクション]-> [<情報/デバッグ>メッセージを含める])も確認してください。

ここに画像の説明を入力してください

WebViewUIWebViewまたはWKWebView)からのログを表示する場合は、を使用する必要があることに注意してください。Safary -> Develop -> device

[クラッシュログを探す]

于 2019-01-11T11:30:25.910 に答える
12

テーリングは私に/var/log/system.logはうまくいきませんでした。を使用してログを見つけましたConsole.app。彼らは

~/Library/Logs/iOS Simulator/{version}/system.log

于 2013-07-26T19:02:55.237 に答える
7

XCode>6.0およびiOS> 8.0XCodeバージョン>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

また

xcrun simctl list

これで、デバイスコードまたはシミュレータタイプを引数としてスクリプトに渡し、grep内の「iPhone6(8.2シミュレータ)」を$1に置き換えることができます。

于 2015-02-27T23:34:54.067 に答える
2

Xcodeの場合:[表示]->[デバッグ領域]->[コンソールのアクティブ化]

ここに画像の説明を入力してください

于 2020-12-02T00:13:59.460 に答える
1

Safariテクノロジープレビューアプリを使用すると、SafariWebInspectorおよびすべてのWeb開発ツールを含むシミュレータコンソールウィンドウを表示できます。シミュレーターのSafariでページを開き、Safariテクノロジープレビュー>開発>シミュレーターに移動します。

Web開発ツール

于 2020-02-28T06:17:19.180 に答える
0

iOSシミュレーターを介してログを直接開くことができますDebug -> Open System Log...。これがいつ導入されたかわからないため、以前のバージョンでは使用できない可能性があります。

于 2015-12-07T17:27:15.490 に答える
0

いいえNSLog、またはprintコンテンツはに書き込みます。これは、Xcode11system.logのSelectで開くことができます。Simulator -> Debug -> Open System log

xx.log方法を見つけて、ログをファイルに書き込んで、で開きます。Terminal.appそうすると、ログがTerminal.app活発に表示されます。

私はCocoaLumberjackを使用してこれを達成します。

ステップ1:

ログパスを追加DDFileLogger DDOSLoggerして印刷します。config()アプリランチ時に呼び出す必要があります。

static func config() {
    #if DEBUG
    DDLog.add(DDOSLogger.sharedInstance) // Uses os_log
    let fileLogger: DDFileLogger = DDFileLogger() // File Logger
    fileLogger.rollingFrequency = 60 * 60 * 24 // 24 hours
    fileLogger.logFileManager.maximumNumberOfLogFiles = 7
    DDLog.add(fileLogger)
    DDLogInfo("DEBUG LOG PATH: " + (fileLogger.currentLogFileInfo?.filePath ?? ""))
    #endif
}

ステップ2:

printまたはNSLogに置き換えDDLogXXXます。

ステップ3:

$ tail -f {path of log}

ここでは、メッセージがTerminal.appに活発に表示されます。

もう1つ。メッセージのログアウトがない場合は、Environment Variables-> OS_ACTIVITY_MODEISNOTが無効になっていないことを確認してください。

于 2020-04-27T16:31:18.293 に答える
0

サファリテクノロジーレビューをダウンロードしてください。シミュレーターを実行した状態で、[開発]>[シミュレーター]>[ローカルホスト]を選択します

于 2020-09-30T19:16:08.550 に答える
0

コンソールログを表示する最も簡単な方法はconsolelogs、パラメータとして追加することです。

ionic cordova run ios -l --consolelogs

また、ターミナルでコンソールログを確認できます。

于 2021-06-02T14:22:26.350 に答える