Принудительное обозначение сбоев в организаторе сбоев и Xcode 7

На данный момент мой аварийный органайзер выглядит следующим образом. введите описание изображения здесь

Раньше я действительно не работал с журналами сбоев, но для меня сбои не выглядят символическими. Я не могу найти, где приложение разбилось и по какой причине. Кроме того, когда я открываю трассировку стека в проекте, ничего не выделяется, и я не могу сказать, а в какой строке он упал в файле. Мой вопрос: есть ли способ символизировать все эти сбои из органайзера или это нужно делать через терминал?

Спасибо.


person Acoop    schedule 29.10.2015    source источник
comment
Вероятно, это дубликат этой ошибки. Тем не менее действительный.   -  person Albert Bori    schedule 13.11.2015
comment
Ссылка в предыдущем комментарии относится к TestFlight, но я не использую TestFlight и вижу ту же проблему.   -  person arlomedia    schedule 17.11.2015


Ответы (2)


Вы видите, что классы SDK, такие как UITableView, символизируются, а классы из вашего приложения «YLSA» — нет. Оба должны символизироваться автоматически, но, по моему опыту, один или другой (или оба) часто не символизируют. Я занимаюсь разработкой для iOS в течение пяти лет, и это была постоянная проблема во всех разных версиях Xcode.

Спасибо, что не символизируете

Я вижу ту же проблему, что и вы, в Xcode 7, но я смог символизировать свои журналы с помощью этого обходного пути:

  1. В списке журналов сбоев щелкните правой кнопкой мыши нужный журнал и выберите Show in Finder. Это покажет вам пакет, содержащий один или несколько файлов .crash и некоторые метаданные.
  2. Перемещайтесь по пакету, пока не найдете журнал сбоев. Вы увидите, что одна и та же информация была или не была здесь символизирована.
  3. В Xcode откройте окно «Устройства» и выберите подключенное устройство, затем нажмите кнопку View Device Logs.
  4. Перетащите журнал сбоев на шаге 2 из Finder в список журналов для этого устройства.
  5. Когда я это делаю, я никогда не вижу, чтобы добавленный мной журнал отображался в списке, но если я щелкну заголовки один или два раза, чтобы пересортировать список, я увижу его.
  6. Через мгновение журнал сбоев станет полностью символизированным.

Если у вас уже есть много журналов в вашем списке, вы можете сравнить дату, версию iOS и модель оборудования при просмотре журнала в Finder с журналами в Xcode, чтобы убедиться, что вы просматриваете один и тот же журнал. Затем посмотрите на строку с надписью «Triggered by Thread», чтобы получить номер потока, в котором произошел сбой, затем прокрутите вниз до этого потока, чтобы увидеть код, вызвавший сбой.

Это сработало для меня сегодня с Xcode 7. Надеюсь, это поможет вам!

person arlomedia    schedule 17.11.2015
comment
Я следовал вашим инструкциям, и это, кажется, ничего не меняет. Должен добавить, что большинство сбоев были сгенерированы на устройствах других пользователей, а не на моих, и собраны Apple. - person Acoop; 23.11.2015
comment
Мои сбои также генерировались на устройствах других пользователей и собирались Apple. Мне жаль, что это решение не сработало для вас. По моему опыту, это ужасно ненадежная система, и мне приходилось использовать различные обходные пути в разное время на протяжении многих лет. - person arlomedia; 23.11.2015
comment
Обходной путь не очевиден, но работает для меня с Xcode 7.2 - person DevGansta; 12.01.2016
comment
Сначала у меня это тоже не работает, но, щелкнув правой кнопкой мыши по сбою в списке (на экране «Просмотр журналов устройств»), нажмите повторно символизировать, и это сработает :) Спасибо, что поделились своим решением! +1 - person matzino; 12.01.2016
comment
Спасибо за эти подробные инструкции. Я также не смог заставить его работать. Эппл бы это исправила... - person jjxtra; 26.01.2016
comment
Для тех, кто предпочитает терминал: вы можете найти все файлы .crash, загруженные и частично символизированные Xcode, а затем снова запустить на них symbolicatecrash. - person eli; 26.01.2016
comment
это будет работать только в том случае, если в xcode есть архив, который использовался для отправки сборки в iTunesConnect. Если вы находитесь на другом Mac, вам не повезло. - person Juraj Antas; 11.02.2016
comment
Спасибо! у меня работал с Xcode 7.3.1, единственное, чего не хватает в вашем ответе, это то, что мне нужно было загрузить файл DSym правильной версии. Вы можете сделать это, выбрав «Архив» в органайзере и нажав «Загрузить dSYMs...» в правой части экрана. - person quarac; 26.05.2016

Когда вы отправляете приложения через Xcode, появится опция для включения символов отладки. В следующий раз, когда вы отправите версию приложения, обязательно выберите ее; если вы этого не сделали, это может объяснить проблему, которую вы видите. К сожалению, нет возможности сделать это задним числом для уже отправленных версий приложения, поэтому вам придется подождать, пока вы не будете готовы отправить следующую версию, чтобы увидеть, была ли проблема в этом.

person arlomedia    schedule 23.11.2015
comment
По моему опыту, это не имеет значения. Мы всегда это делаем. Мы никогда не получаем символические следы. - person Stefan Arentz; 15.01.2016