Существует ли способ получить вывод NSLog на iPhone при отсутствии соединения с отладчиком?

14
задан Cœur 13 December 2017 в 05:03
поделиться

3 ответа

Я вполне уверен, что NSLog () вызовы будут записаны в системный консольный журнал, поэтому при подключении iPhone с компьютером будучи в режиме офлайн необходимо смочь посмотреть на консоль, входят в систему Организатор XCode. Единственный протест состоит в том, что консольный журнал ограничен в размере, таким образом, более старые записи могут быть убиты, если Вы делаете большой вход.

17
ответ дан 1 December 2019 в 06:12
поделиться

Метод ниже создаст имя файла “console.log” в папке Documents Вашего приложения, таким образом, можно будет позже считать его.

Вызов этот метод в начале Вашей программы:

- (void) redirectConsoleLogToDocumentFolder
{
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];
  NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
  freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}

журнал никогда не будет стираться, таким образом используйте с осторожностью.

, После того как Вы протестировали свое приложение в поле, повторно подключите свой телефон к Вашему Mac, в XCode, откройте Organizer. В панели Summary у Вас есть список всех приложений по Вашему телефону. Разверните тот, который Вы отлаживаете, и Вы будете видеть пакет под названием "Данные приложения".

Щелчок стрелка справа от ее имени и сохраняют это. Вы закончите папкой с названием Вашего Идентификатора Пакета, сопровождаемого датой.

Внутренняя часть эта папка Вы найдете свою Папку Документов, которая должна содержать console.log

28
ответ дан 1 December 2019 в 06:12
поделиться

Marc Novakowski is right. The console output gets logged on the phone, and when you connect your Mac to your phone, the console output is available in the organizer window.

Just select your phone in the devices panel, and select the console tab. The recent console output will be right there. Very cool.

I just figured this out. That will be very helpful in situations like you describe where you need to be away from your computer.

BTW, I have a solution to your need to test weak WiFi signals. Just wrap your phone in aluminum foil, with the USB cable sticking out from the foil wrapper. If you are running with it tethered you can single-step through the code in the debugger. You can't manipulate the user interface, but you can degrade/eliminate radio signals like 3D, WiFi, and GPS. If you want to degrade the signal strength but not cancel it completely, you may need to experiment with partly covering the phone with foil, putting small holes in the covering, etc.

One caution: Don't leave the phone wrapped in foil for more than a few minutes at a time. It will likely overheat.

2
ответ дан 1 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: