Как получить вывод приложения OS X на консоли или в файл?

Я пишу приложение Какао со встроенным Mono. Я хочу запустить и увидеть мой вывод отладки в терминале. Со стороны Какао я использую NSLog(), а со стороны Моно я использую Debug.Write(). Я вижу свои выходные данные отладки в консоли XCode, но не в Терминале. Вот что я попробовал:

$: open /path/build/Debug/MyProgram.app
$: open /path/build/Debug/MyProgram.app> output
$: open /path/build/Debug/MyProgram.app 2> output

в терминале, но у меня нет вывода на консоль или в 'Output'.

Какая правильная команда?

PS. Моя конечная цель - написать плагин vim для управления, сборки, запуска и отладки проекта xcode. Вы можете избавить меня от хлопот, если вы можете заставить этот менеджер ввода vi работать с xcode.

13.12.2008 00:30:32
4 ОТВЕТА
РЕШЕНИЕ

Крис дал хороший обзор того, как работает Консоль, но специально ответил на ваш вопрос: если вы хотите видеть результаты непосредственно в вашем Терминале, вам нужно запустить встроенный продукт как дочерний для Терминала, что означает использование чего-то вроде

/path/debug/build/MyProgram.app/Contents/MacOS/MyProgram

запустить приложение.

68
24.01.2018 22:52:10
У меня тоже сработало - спасибо! Для других, кто сталкивается с этим ответом, это, в основном, означает запуск ./MyProgram.app/Contents/MacOS/MyProgram, если вы находитесь в каталоге, содержащем .app.
dmonopoly 2.04.2012 22:19:40
что вы имеете в виду /path/debug/build? Я хочу увидеть журнал выполнения для PhpStorm на моем Mac OS X Sierra
Pmpr 6.10.2017 11:55:40
/path/debug/buildдолжен был быть заполнителем пути к папке с вашими встроенными продуктами.
Lily Ballard 6.10.2017 17:53:43
К сожалению, это не совсем то же самое open MyProgram.app. Я создал приложение, которое прекрасно работает при непосредственном запуске, но когда вы открываете приложение, оно сразу же закрывается.
Timmmm 18.10.2019 18:21:24
Подобно случаю @Timmmm, я смог отладить, временно удалив мой ~/.profile(который удалял все, что envvariable или псевдоним позволяли выполнению работы моего приложения из терминала, но не при открытии приложения)
Alec Jacobson 12.02.2020 12:26:00

Откройте Console.app в / Applications / Utilities. Все выходные данные NSLog будут напечатаны в системном журнале.

Или, если вы запустите его из Xcode, весь вывод будет напечатан в консоли отладки.

Я сейчас не на своем Mac и не помню последовательность команд или меню, в котором находится Консоль отладки, возможно, меню Build?

11
7.12.2014 21:18:23
Я пытаюсь избежать использования Xcode. Я знаю о чем ты говоришь. Cmd + Shift + R показывает консоль XCode, и я вижу все свои выходные данные отладки там.
phi 13.12.2008 03:20:30
Я только что посмотрел на Console.app. Это выглядит многообещающе. Я вижу все мои результаты там; из NSLog () и Debug.Write ().
phi 13.12.2008 04:20:41
Это не значит, что вы должны наносить вред своей разработке, используя их совершенно нахальную и сбойную IDE. :)
Ian 13.03.2015 14:13:48

Терминал в Mac OS X - это просто другое приложение. Открытие окна терминала для ввода / вывода текста не является неотъемлемой возможностью каждого приложения, как в Windows.

Кроме того, open /path/to/MyApp.appне выполняет MyApp.app как подпроцесс вашей оболочки, он посылает сообщение для запуска инфраструктуры операционной системы с просьбой его , чтобы запустить приложение в обычном режиме, так же , как если бы он был двойным щелчком в Finder или щелкнут в доке. Вот почему вы не можете просто перенаправить вывод, чтобы увидеть, на что отправляет ваше приложение stdoutили stderr.

Вы можете использовать Console.app, чтобы увидеть вывод приложений, запущенных обычным способом, потому что инфраструктура запуска специально отправляет их stdoutи stderrтуда. Вы также можете использовать aslподпрограммы для запроса журнала или выполнить более сложное ведение журнала, если вы того пожелаете.

14
7.12.2014 21:17:28

обзор

Идея состоит в том, чтобы просто запустить приложение из командной строки, используя ios-deploy .

инструкции

  1. Установите ios-deploy
  2. Запустите приложение из xcode (убедитесь, что оно работает успешно)
  3. перейдите в меню xcode> настройки> местоположения и нажмите на стрелку в производных данных: введите описание изображения здесь
  4. в каталоге производных данных найдите файл .app в разделе Build / промежуточные / продукты
  5. в терминале введите следующее, ios-deploy --debug --bundle затем перетащите файл .app из шага 4 в терминал .. у вас должно быть что-то вроде этого ios-deploy --debug --bundle path/to/your/applicationName.app и все! Приложение должно успешно запуститься, и все журналы будут отправлены на ваш терминал.
0
1.07.2015 08:05:33