Когда мое приложение вылетает при подключении к 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?