Monoが埋め込まれたCocoaアプリケーションを書いています。ターミナルでデバッグ出力を実行して確認したいのですが。 Cocoa側ではNSLog()
を使用し、Mono側ではDebug.Write()
を使用しています。 Xcodeのコンソールにはデバッグ出力が表示されますが、ターミナルには表示されません。これは私が試したものです:
$:/path/build/Debug/MyProgram.appを開く $:/path/build/Debug/MyProgram.appを開く>出力 $:/ path/buildを開く/Debug/MyProgram.app 2>出力
端末では、コンソールや「出力」には出力しません。
正しいコマンドは何ですか?
PS。私の最終的な目標は、xcodeプロジェクトを管理、ビルド、実行、デバッグするためのvimプラグインを作成することです。これを取得できれば、この面倒を省くことができます vi入力マネージャー xcodeで動作します。
Chrisは、コンソールの動作の概要を説明しましたが、具体的には質問に答えるために、結果を直接ターミナルで確認したい場合は、ビルドされた製品をターミナルの子として実行する必要があります。
/path/debug/build/MyProgram.app/Contents/MacOS/MyProgram
アプリを起動します。
Mac OS Xのターミナルは、もう1つのアプリケーションです。テキストI/Oのターミナルウィンドウを開くことは、Windowsのようにすべてのアプリケーションに固有の機能ではありません。
さらに、open /path/to/MyApp.app
は、シェルのサブプロセスとしてMyApp.appを実行せず、オペレーティングシステムの起動インフラストラクチャにメッセージを送信して、itにアプリケーションを通常の方法で実行するよう依頼します。 -Finderでクリックしたか、Dockでクリックした。そのため、出力をリダイレクトして、アプリがstdout
またはstderr
に何を送信しているかを確認することはできません。
起動インフラストラクチャは特にstdout
およびstderr
をそこに送信するため、Console.appを使用して、通常の方法で起動されたアプリケーションの出力を確認できます。 asl
ルーチンを使用してログをクエリしたり、必要に応じてより高度なロギングを実行したりすることもできます。
/ Applications/UtilitiesにあるConsole.appを開きます。すべてのNSLog出力はシステムログに出力されます。
または、Xcode内から実行すると、すべての出力がデバッグコンソールに出力されます。
私は今Macを使用していません。コマンドシーケンスや、デバッグコンソールが含まれているメニュー(おそらく[ビルド]メニュー)を思い出しませんか?
アイデアは ios-deploy を使用してコマンドラインからアプリを実行することです。
ios-deploy --debug --bundle
次に、手順4の.appファイルをターミナルにドラッグします。次のようなものが必要ですios-deploy --debug --bundle path/to/your/applicationName.app
以上です!アプリは正常に実行され、すべてのログが端末に送られます。