Подтвердить что ты не робот

Регистрация данных на устройстве и извлечение журнала

В отладочной сборке в Xcode, независимо от того, использую ли я симулятор или фактическое устройство, команды консоли NSLog, printf, fprintf assert и NSAssert выходят на консоль

Если я сейчас запустил сборку релиза на устройстве (скажем, я отправляю сборку тестовых полетов и увеличиваю ее на своем iPhone, это будет сборка релиза), какие из них (если есть) записываются?

И как мне получить журнал?

Действительно ли NSLog выводит что-то в сборке релизов? Каков определяющий фактор? Будете ли вы писать на stdout или stderr? записывается только stderr в журнал устройства? Означает ли это, что я должен использовать fprintf? НИЧЕГО записывается в журнал устройства? есть ли такая вещь? Если да, то как его поднять?

Может ли кто-нибудь прояснить ситуацию?

4b9b3361

Ответ 1

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];
NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

Просто добавьте этот блок кода в метод application:didFinishLaunchingWithOptions в файл делегата приложения, и он создаст файл журнала в каталоге документа приложения на iPhone, который регистрирует все события журнала консоли. Вам нужно импортировать этот файл из iTunes, чтобы просмотреть все события консоли.

Примечание. В файле .plist убедитесь, что Application supports iTunes file sharing существует и имеет значение YES, чтобы вы могли получить доступ через iTunes.

Чтобы получить лог файлы: Запустите itunes, после того, как ваше устройство подключилось, выберите "Приложения" - выберите свой App-in Augument Document, вы получите свой файл. Затем вы можете сохранить его на свой диск

Ответ 2

В Xcode 6.1.1 вы можете просмотреть выход NSLog, выполнив следующее. Однако я не уверен, позволяет ли он видеть журналы слишком далеко назад. Я только видел, что это вернулось на пару часов.

В любом случае, вот шаги:

  • В Xcode перейдите в Window → Devices.
  • Выберите устройство на левой панели.
  • Нажмите маленькую стрелку, как показано на скриншоте ниже.

enter image description here

Ответ 3

В Swift 3.0 код Shyl будет изменен на

var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let fileName = "\(Date()).log"
let logFilePath = (documentsDirectory as NSString).appendingPathComponent(fileName)
freopen(logFilePath.cString(using: String.Encoding.ascii)!, "a+", stderr)

все остальные процессы те же, что объяснил Шил

Просто добавьте этот блок кода в приложение: метод didFinishLaunchingWithOptions в файл делегата приложения, и он создаст файл журнала в каталоге документов приложения на iPhone, который регистрирует все события журнала консоли. Вам нужно импортировать этот файл из iTunes, чтобы увидеть все события консоли.

Примечание. В файле.plist убедитесь, что Application supports iTunes file sharing и для него установлен YES чтобы вы могли получить доступ через iTunes.

Чтобы получить файлы журналов: Запустите iTunes, после того, как ваше устройство подключится, выберите "Приложения" - выберите приложение - в "Документе Augument" вы получите свой файл. Затем вы можете сохранить его на свой диск

Ответ 4

NSLog записывается в журнал устройств в производственной версии, и вы можете проверить это, подключив свой iPhone к своей системе и используя Organizer. Выберите свой iPhone в организаторе, нажмите "Журналы устройств". Вы увидите все выходы NSLog в журнале.

Ответ 5

Я нашел эту ссылку из APPLE очень информативной и полной. Это в значительной степени дает вам все возможности для просмотра или доступа к журналам устройства, независимо от того, подключены они к вашей машине dev или нет.

https://developer.apple.com/library/ios/qa/qa1747/_index.html

Ответ 6

Да, выходы NSLog на устройстве. Вы можете видеть, что вы выводите его на свое устройство, подключенное к вашему Mac, и с помощью инструмента Xcode Organizer.

Ответ 8

Я знаю, что это старая ветка, но вы также можете получить доступ к журналам устройств, которые находятся по адресу:

Настройки → Конфиденциальность → Аналитика → Данные

Надеюсь это поможет

С уважением