Как мне указать причину сбоя в журналах сбоев?

Когда мое приложение вылетает при подключении к Xcode, я получаю всю информацию, необходимую для отладки и устранения проблемы. Но не тогда, когда приложение выходит из строя, когда оно не подключено к Xcode, Я не знаю, было ли развернуто nil, сбой утверждения или исключение.

В последних двух случаях сообщение об утверждении или исключении также отсутствует.

Как мне заставить Xcode включать эту информацию в журналы сбоев?

У меня есть «Удалять отладочные символы во время копирования» и «Удалять связанный продукт» установлено на NO, а формат отладочной информации для отладочных сборок установлен на DWARF с dSYM. И да, на телефон устанавливаю отладочные сборки. Я получаю символьную трассировку стека, но не информацию, указанную выше.


Случай 1: Unwrap nil: в журнале сбоев отсутствует строка «фатальная ошибка: неожиданно обнаружено nil при развертывании необязательного значения».

Случай 2: ошибка утверждения: если у меня есть:

assert(level > 2, "Level should've been at least 2")

«Уровень должен был быть не ниже 2» не отображается в журнале сбоев. Иногда даже не говорится, что произошел сбой из-за сбоя утверждения (в отличие от какой-либо другой причины).

Случай 3: Исключение: отсутствует сообщение об исключении, подобное приведенному ниже:

Завершение работы приложения из-за неперехваченного исключения 'NSGenericException', причина: '*** - [AVCaptureDevice setTorchMode:] Не может быть вызван без предварительного получения исключительного права собственности на устройство с помощью -lockForConfiguration:'

Иногда даже не говорится, что произошел сбой из-за исключения (в отличие от какой-либо другой причины).

Как мне получить сбои, когда я не подключен к Xcode, чтобы иметь всю информацию, которую я получаю со сбоями при подключении к Xcode?


person Kartick Vaddadi    schedule 02.05.2017    source источник


Ответы (1)


Лучше всего использовать аналитический инструмент. Взгляните на Fabric

person Malik    schedule 02.05.2017
comment
Это один из вариантов, но пока я смотрю не на вход в продакшн, а на тестирование. - person Kartick Vaddadi; 02.05.2017
comment
Вы также можете войти во время тестирования и снять его с производства, если вы этого не хотите. - person Malik; 03.05.2017
comment
Знаю, но вопрос в том, где есть что-то попроще, если я просто хочу, чтобы оно работало только на моем собственном телефоне. Если он выйдет из строя, в следующий раз, когда я подключу его к Xcode, он должен предоставить мне информацию, упомянутую в вопросе. - person Kartick Vaddadi; 03.05.2017
comment
Я не встречал ничего, что делало бы то, о чем вы просите. Я бы использовал dSYM и журналы сбоев, но поскольку это не решает вашу проблему, у меня нет идей. Возможно, кто-то другой сможет вам помочь в этом отношении. Удачи - person Malik; 03.05.2017
comment
Сообщают ли репортеры об аварии информацию, которую я упомянул в своем вопросе? Если да, то если ничего не получится, воспользуюсь ими. Спасибо. - person Kartick Vaddadi; 03.05.2017
comment
Зависит от аварии. Некоторые делают, некоторые нет - person Malik; 04.05.2017