2013-03-18 2 views
3

предположим, что мое приложение было разбито средствами в это время applicationWillTerminate функция называется. В этой функции я хочу сохранить файл журнала сбоев в временном каталоге. Когда приложение запускается в это время, я хочу загрузить файл отчета о сбоях с устройства iOS на мое местоположение на сервере, тщательно кодируя его.Как хранить файл журнала сбоев в приложении ios?

Я использую этот код для сохранения файла журнала сбоев.

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

, но этот код будет работать в симуляторе. Я могу видеть этот файл в

/Users/UserNAme/Library/Application Support/iPhone Simulator/6.0/Applications/xxx-yyy-sss--eee/Documents/console.log 

но я не могу найти этот файл в устройствах ios.

Примечание: для поиска файлов в устройстве IOS Я использую iExplorer

ответ

9

К сожалению, вы не можете получить в crashlog на устройстве программно. Чтобы преодолеть это, существует ряд коммерческих, квази-коммерческих и open-source решений.

В частности, HockeyApp (принадлежащий Microsoft) и crittercism предоставляют коммерческие решения. Кроме того, TestFlightApp (хотя и приобретенный Apple) по-прежнему предоставляет такую ​​функциональность через свой интерфейс.

Исходный код HockeyApp также доступен на github.

В конце концов, в большинстве этих систем используется базовый ловушка для сбоев, называемая plcrashreporter, которая представляет собой среду с открытым исходным кодом, которая размещает почти точный экземпляр отчета о сбоях iOS в вашем каталоге.

Если вы хотите самостоятельно управлять своими делами, я настоятельно рекомендую plcrashreporter, в противном случае доступны размещенные и коммерческие решения, и вы должны смотреть на них и решать сами.

+0

of the course, используя это приложение TestFlightApp для целей тестирования deveoper, s и tester. Здесь я хочу отправить этот файл сбоя только на конкретный почтовый идентификатор. – Senthilkumar

+0

Ответы выше все еще на месте. Если вам нужно обработать отчет о сбое самостоятельно, вам придется его самостоятельно создавать. Существует абсолютно никакой возможности вырваться из песочницы и получить версию ОС отчета о сбоях ОС внутри устройства. Единственный другой вариант - захватить его с устройства вручную или с помощью iTunes или Xcode, но у меня создается впечатление, что вы хотите сделать это для полевых устройств, а не для разработки. Кроме того, большинство размещенных решений могут использоваться как с живыми, так и с тестовыми приложениями. – gaige

2

Другой полезный вариант (мы используем его) - это Crashlytics.com, который является бесплатным и имеет большой контроль над отчетностью (принадлежащей twitter сейчас, используйте с осторожностью!).