2015-03-16 2 views
1

Я пишу коды для проекта, где я не могу использовать несколько инструментов отчетности о сбоях из-за проблемы конфиденциальности. Поэтому я ищу управление отправкой сообщения электронной почты с сообщением о сбоях, если произошел сбой без участия стороннего инструмента отчетности.Попросите отправить отчет об аварии в ios?

+0

Любые причины, по которым вы не можете просто использовать встроенные отчеты о сбоях Apple через iTunes Connect? –

+0

Нет, у меня нет никаких проблем с этим, я пытаюсь управлять им по-своему. Это запомнилось, чтобы отправить электронное письмо по поводу сбоев на моей почте. –

ответ

1

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

https://www.plcrashreporter.org/

+0

Я не хочу добавлять сторонние рамки. –

+0

1. PLCrashReporter не ищет журналы сбоев, он ловит их и сам пишет отчет. 2. Если вы не хотите использовать существующую структуру отчетов о сбоях, вы не сможете безопасно и точно отслеживать данные журнала сбоев. Независимо от того, что вы сделаете сами, даже если что-то может сработать в вашем быстром испытании, будет неправильно. – Kerni

+0

Да, действительно, он создал журналы сбоев всякий раз, когда приложение терпит крах. Затем есть также API для извлечения этих сбоев (вызывается, когда приложение запускается в соответствии с моим ответом). –

2

В прикладном делегатом объявить API, как:

void uncaughtExceptionHandler(NSException * exception) 
{ 
    // Here you can: 
    // 1. Set some boolean in user defaults that app crashed. 
    // 2. Dump this data (below) in some file in documents directory. 

    NSLog(@"Uncaught Exception: %@", exception.reason); 
    NSLog(@"CrashSymbols: %@", exception.callStackSymbols); 
} 

Затем установите в "приложения: didFinishLaunchingWithOptions:":

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); 

Тогда, когда ваше приложение следующие запуски, если булево (1) устанавливается в значениях по умолчанию пользователя, читайте эти данные (2) и электронную почту.

+1

Исключение нечистоты - не единственная причина сбоев; это пропустит множество возможных ошибок. –

+0

Могу ли я отправить в реальном времени? означает, что всякий раз, когда происходит сбой, приложение просит нас отправить отчет о сбое.? –

+0

Существует эта хорошая статья, которая подробно объясняет это: http://www.cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html – gagarwal