これは有望に見えましたが、Swiftの問題に対処しているため、重複した質問のようには見えません。
既存のObjectiveCプロジェクトを完成させていますがNSLog
、Xcode 9に更新すると消えてしまいました。そこでNSLog
、プロジェクトの微調整に引き続き使用できるXcodeの設定を探しています。
SwiftおよびObjective-Cアプリのログを使用した基本的なデバッグNSLog
は、デバッグ領域にメッセージが表示されなくなったため、Xcode9で変更されたようです。DEBUG = 1が設定されているウィンドウは、図2XcodeプロジェクトのDEBUGプリプロセッサマクロ設定のようにはなりません。
例として、Xcode9を使用してこの文字列メッセージをデバッグ領域に表示したいと思います。
NSString *outputData = @"This should show in Debug area";
NSLog( @"text: %@", outputData );
私はここまたはここで最新のドキュメントを研究しましたが、これまでのところそれは役に立ちませんでした。以前は、プロジェクトを実行するとデバッグ領域が自動的に開くことにも注意してください。それをインストールするXcode9
ので、もはやそれをしません。
うまくいけば、以下の編集で提供される追加情報が、私がまだ見ていない誰かに示唆するでしょう。ありがとう。
編集1
コンソール領域(つまり、デバッグ領域の右下部分)で、[すべての出力]を選択しました。そこで、デバッガ出力とターゲット出力を使ってみましたが、ログがありませんでした。
これらのステートメントをPrefix.pch
ファイルに追加しました
#ifndef DEBUG
#define NSLog(...) /* suppress NSLog when in release mode
#endif
コードを実行すると、IssueNavigatorに次のように表示されました。
Unused variable 'outputData'
編集2
Xcode9でDEBUG = 1を設定する別の場所があるようです(以下を参照)。
ここ、ここ、ここ(すべてかなり古い)、さらにはここ(MyLogをNSLogに戻すことを確認してください)のいくつかのSO投稿で提案されている例を使用して、DEBUGマクロを.pchファイルに挿入しました。いずれの場合も、Issueナビゲーターで同じ問題を報告できましたが、デバッグコンソールでは報告できませんでした。同様の問題(とXcode5
)は、ファイルを新しいプロジェクトにコピーすることでここで解決されましたが、これは避けたいと思います。
ほぼ完成した私のアプリは、これまでのところ、統合ログが対処しようとしている複雑な問題のいずれにも対処する必要はありませんでした。しかし、私は見た2016年WWDCのビデオを統合ログに基本として何かをするために、適切なAPIを使用する方法の例を探して、そのスライドショーファイルを読んで-印刷NSLog
コンソールエリアへのライブ-私はインストールする前に行った方法Xcode9.
これはかもしれ間違ったアプローチ。しかし、私は先に進むためのより良い方法を考えることができません。
編集3
Xcode9を使用して新しいObjectiveCプロジェクトを作成し、上記のコードを実行すると、コンソール領域に文字列メッセージが表示されたことは注目に値します。
つまり、Xcode9を使用すると、新しいロギングAPIは機能しますがNSLog,
、新しいプロジェクトに対してのみ機能し、以前のバージョンのXcodeを使用して作成されたプロジェクトに対しては機能しません。
DEBUGプリプロセッサマクロを有効にする
preCompileヘッダーのこれらの定義を置き換えた後、Xcode9のコンソール領域でデバッグログが有効になりました
#ifndef DEBUG
#define NSLog(...) /* suppress NSLog when in release mode */
#endif
次のように
#ifdef __DEBUG__
#define NSLog(...) /* suppress NSLog when in release mode */
#endif
以下のための環境変数Arguments
の回答に応じて設定された上記のための追加設定でOptions.
、統合ログのAPIに精通誰かが特定のオプションを説明するかもしれないが、私は私が働いて解決策を持って満足しています。
引数
オプション
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加