Обработка файлов символов в Xcode


285

Мне было интересно, если кто-нибудь может сказать мне, что на самом деле делает XCode, когда он говорит: «Обработка файлов символов» после подключения вашего устройства?

Скриншот


Мне пришлось ждать довольно долго ... около 30 минут, и позже развертывание на устройстве прошло успешно. Может быть, Mac требует времени для распознавания устройства.
Джайпракаш Дубей

Ответы:


263

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

Поскольку символы зависят от процессора, вышеприведенное работает только в том случае, если вы импортировали символы не только для конкретного устройства iOS, но и для конкретного типа процессора. В настоящее время необходимы следующие типы процессоров: armv7 (например, iPhone 4, iPhone 4s), armv7s (например, iPhone 5) и arm64 (например, iPhone 5s).

Поэтому, если вы хотите символизировать отчет о сбое, который произошел на iPhone 5 с armv7s, и использовать только символы armv7 для этой конкретной версии iOS, Xcode не сможет (полностью) символизировать отчет о сбое.


19
Недавно я обнаружил, что XCode не будет обрабатывать файлы символов с моего iPad2 или iPhone4s. Всегда он остановится на полпути и никогда не завершится, даже через полчаса. В конце концов я заставил его работать ... отсоединив совершенно новый соединительный кабель и подключив его непосредственно к моему Mac Mini (ранее я был подключен через удлинительный кабель). Я пришел к выводу, что плохое соединение ДЕЙСТВИТЕЛЬНО портит обновления символов.
Пепел

5
Так почему бы не связать эти символы с дистрибутивом xcode? Зачем идти на все проблемы извлечения их из устройства?
Мэтью Экзон

3
Размер символов для всех архитектур превышает 1 ГБ на версию (iOS), и не всегда есть обновление XCode для каждого выпуска исправления ошибки. Xcode только обновляется с обновлениями / изменениями API.
Керни

@VladimirDespotovic Что вы хотите решить здесь? Это не является проблемой. Это необходимо сделать, поскольку отладчику нужны эти данные, а для обозначения сбоя это также необходимо. Вопрос также не поставил проблему.
Керни

36

В Версии Xcode 6.1.1 (6A2008a) после «Обработки файлов символов» папка, содержащая символы, связанные с устройством (включая версию iOS и тип процессора), была создана в ~ / Library / Developer / Xcode / iOS DeviceSupport / следующим образом:

введите описание изображения здесь


6
что было в (ноль) (ноль)?
Антон Тропашко

6
@AntonTropashko на (null) ((null))самом деле.
Алехандро Иван

6
В моем случае "(null) ((null))" содержал ... ничего!
Sjakelien

7
Поскольку файлы Sym загружаются при необходимости, я уничтожил большинство папок в этом месте. Это освободило более 24 гигабайт на моем SSD!
Sjakelien

@Sjakelien Папка хорошо помечена тогда
Брэд Томас

19

xCode просто скопировать все журналы сбоев. Если вы хотите ускорить: удалите количество отчетов о сбоях после анализа, прямо в этом окне.

Devices -> View Device Logs -> All Logs

Скриншот


@QLiu Конечно. Кажется, ошибка или журналы больше, чем ожидалось.
WINSergey

Как получить доступ к этим журналам? (У меня 0 опыта работы с xCode)
Бен

Окно @Ben -> Устройства -> Выберите устройство с левой стороны ->
Готово

4

В моем случае символизирование было продолжением навсегда. Я принудительно перезагружаю телефон с помощью кнопки включения / выключения и кнопки домой. Теперь быстро закончил символизировать, и я начинаю запускать свое приложение через xcode.


1

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


Это могло быть удачным выбором времени ... или задержкой реакции на другие ваши действия. Я отключился и снова подключился, и он вернулся в этот режим, пока не закончил.
Пол Масри-Стоун

0

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

Посмотрите на местоположение файла символа xcode для деталей


0

Досадная ошибка. Я решил это, подключив кабель непосредственно в iPad. По какой-то причине процесс никогда не закончился бы, если бы у меня был iPad на стойке Apple.


3
Это ошибка, потому что она НИКОГДА не завершится, если она будет у меня на стенде.
GoldenJoe

2
Я признаю, что ответ плохо выражен, но он был действительно правильным для меня, подключение напрямую к разрешенному для меня порту usb, несмотря на то, что usb-концентратор работал нормально для любой другой задачи
jalone

0

Добавить версию SDK, соответствующую вашему iPhone iOS, например: iOS 10.3

дорожка:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport


Это скачивание. Когда все закончится, все в порядке. Как показано на рисунке:

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.