90

NSLogXcode 8.0 ベータ版 (8S128d)からは何も出力されません。printf変わらない

これが私のコードです:

NSLog(@"hello from NSLog");
printf("hello from printf");

iOS 9 シミュレーターでの出力は次のとおりです。

2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog
hello from printf

iOS 10 シミュレーターの出力は次のとおりです。

hello from printf
4

9 に答える 9

231

プロパティ "OS_ACTIVITY_MODE": "disable" を Scheme 環境変数に追加して (シミュレーターからの OS 出力を非表示にするため)、それを忘れて、実際のデバイスで実行している可能性があります。

Xcode 8 では:

Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables

追加OS_ACTIVITY_MODEしてチェックするだけ(値を追加しないでください)</p>

ここに画像の説明を入力

ここに画像の説明を入力

概要: これは Xcode 8 + iOS10 のバグです。次の方法で解決できます。

  • シミュレータを使用する場合は、Name に「OS_ACTIVITY_MODE」、Value に「disable」を追加してチェックします。

  • 実機の場合は「OS_ACTIVITY_MODE」のみ追加してチェックします(Valueは追加しないでください)。Xcode8 コンソールに NSLog が表示されます。

于 2016-09-15T05:19:37.287 に答える
27

Xcode 8 ベータ版のリリース ノートを確認すると、次のように記載されていることがわかります。

シミュレーターで実行されているアプリをデバッグする場合、ログがコンソールに表示されない場合があります。回避策: Simulator.app でコマンド + / を使用して、コンソール アプリでシステム ログを開き、NSLog を表示します。(26457535)

于 2016-06-17T18:36:14.263 に答える
19

NSlog または print は実際には実行されますが、この問題を解決するために他の多くのコンソール デバッグ出力に隠されています。Xcode8 を開きます。

Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables

「OS_ACTIVITY_MODE」を追加し、値を「無効」に設定してチェックします。

クリックして閉じる

xcode9

「OS_ACTIVITY_MODE」を追加し、値を「デフォルト」に設定してチェックします。

ここに画像の説明を入力 ここに画像の説明を入力

于 2016-09-15T20:06:34.080 に答える
7

実際の iOS 10 デバイスでも NSLog 出力を確認できません。実際のデバイスを使用している場合は、Xcode (Shift + Command + 2) から [デバイス] ウィンドウを開いてデバイスのログを表示できますが、コンソールにはシステムとすべてのアプリのログが表示されるため、アプリのログを確認するのは困難です。

(Xcode 7を使っているので、Xcodeの問題ではなくiOS 10の問題かもしれません)

于 2016-06-23T01:17:51.170 に答える
6

うーん...プロパティ "OS_ACTIVITY_MODE": "disable" PREVENTS NSlog が Xcode 9 ログに表示されないようです。

スキームでこの値のチェックを外すと、ログが復元されました。

于 2017-10-03T19:19:13.817 に答える
1

私はXcode 8を使用しているので、同じ問題にも遭遇しました。そしてvalue = disable、シミュレーターに追加することでこの問題を解決しましたが、実際のマシンでは価値を追加しません。

于 2016-09-23T06:01:19.173 に答える
1

NSLogXcode 9.1 + iOS 11.1 にアップグレードすると、メッセージが表示されなくなりました。最初に受け入れられた回答により、コンソールアプリを使用してシミュレーターを有効にしてこれを回避する方法が得られました(ルーカスの回答を参照)。

下のコンソールアプリで、選択と選択解除Actionを試みました(コンソールがシステムメッセージでいっぱいにならないように)。メッセージは Xcode のコンソール ウィンドウに表示されましたが、コンソール アプリには表示されませんでした。Include Debug MessagesInclude Info MessagesNSLog

この回答に対するCoeurのコメントのおかげで、より直接的な方法disableまたは有効にする(つまりdefault)必要があることに気付きました。私の意見では、初心者にとってorに設定する方が理にかなっているので、これが最良の答えです。NSLogsOS_ACTIVITY_MODEdisabledefault

于 2017-11-05T04:00:12.833 に答える