NSLog () хранится на устройстве (iPhone и т. д.)? Если да, то где? - PullRequest
9 голосов
/ 12 июля 2011

Следует ли удалять все вызовы NSLog () в последнем приложении для iTunes?

В моем приложении для iOS у меня есть много NSLog () для отладки.Должен ли я условно кодировать их перед загрузкой в ​​iTunes?

Это приложение для: iPhone, iPod, iPad

Спасибо.

Ответы [ 6 ]

7 голосов
/ 10 августа 2012

Я отвечу на вопрос ОП в заголовке о том, где хранятся журналы на устройстве. NSLog () использует ASL ​​(Apple System Logger). Программно вы можете читать только последние 256 записей (например, это то, что Xcode показывает в Организаторе).

Однако, если вы хотите получить доступ к полным файлам, они хранятся в:

/private/var/log/DiagnosticMessages

Когда вы загляните в этот каталог (примечание: устройство должно быть взломано), вы увидите длинный список * .asl файлов.

Я нашел инструмент для разбора этих файлов, но я еще не пробовал, поэтому YMMV:

Анализ файлов Apple System Log (ASL) на iOS и OSX для развлечения и доказательств (и сценарий Python, который сделает это за вас)

6 голосов
/ 12 июля 2011

Вам не нужно удалять их все;на самом деле, они могут быть полезны, если ваше приложение падает на телефоне пользователя, и вы хотите, чтобы они отправляли вам журнал сбоев.Когда пользователь синхронизирует свой телефон, журнал сбоев находится в папке

~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>

Если у вас есть NSLog() s, вы можете получить полезную информацию так же, как и при отладке.Как отмечали другие, не переусердствуйте, но они могут оказаться полезными.

3 голосов
/ 12 июля 2011

Попробуйте использовать это для своих NSLogs:

#define DEBUG

#ifdef DEBUG
 NSLog(@"Your tests outputs");
#endif
3 голосов
/ 12 июля 2011

Да, мы должны удалить все вызовы NSLog () перед загрузкой в ​​iTunes. Это сделано в основном для лучшей производительности.

Даже если вы не удалите их, нет проблем. Это будет одобрено. Но если у вас много NSLog (), то это будет def. влияет на производительность.

1 голос
/ 12 июля 2011

Не все. Вы должны вести журналы ошибок. Это позволит легко определить местонахождение любой ошибки или сбоя. Также можно просматривать сообщения NSLog с помощью Organizer.

0 голосов
/ 09 октября 2014

Вам не нужно удалять NSLogs, если они добавлены в режим DEBUG. Так что даже если ваше приложение дает сбой и если оно содержит личные данные пользователя, оно будет удалено ios. Так что не беспокойтесь о пользовательских данных и NSLog. См. https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AnalyzingCrashReports/AnalyzingCrashReports.html Тем не менее, если вы хотите, вы можете использовать эту PJiOSAppConsole в своем приложении. Он будет вести логи только в вашем приложении. Вы можете использовать его во время выполнения, добавив фрагмент кода в #ifdef, а затем удалите его всякий раз, когда хотите перейти вживую. Легко интегрировать и использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...