Мне было интересно, если кто-нибудь может сказать мне, что на самом деле делает XCode, когда он говорит: «Обработка файлов символов» после подключения вашего устройства?
Мне пришлось ждать довольно долго ... около 30 минут, и позже развертывание на устройстве прошло успешно. Может быть, Mac требует времени для распознавания устройства.
Джайпракаш Дубей
Ответы:
263
Он загружает (отладочные) символы с устройства, поэтому появляется возможность отладки на устройствах с этой конкретной версией iOS, а также для символизации отчетов о сбоях, которые произошли в этой версии iOS.
Поскольку символы зависят от процессора, вышеприведенное работает только в том случае, если вы импортировали символы не только для конкретного устройства iOS, но и для конкретного типа процессора. В настоящее время необходимы следующие типы процессоров: armv7 (например, iPhone 4, iPhone 4s), armv7s (например, iPhone 5) и arm64 (например, iPhone 5s).
Поэтому, если вы хотите символизировать отчет о сбое, который произошел на iPhone 5 с armv7s, и использовать только символы armv7 для этой конкретной версии iOS, Xcode не сможет (полностью) символизировать отчет о сбое.
Недавно я обнаружил, что 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 / следующим образом:
@QLiu Конечно. Кажется, ошибка или журналы больше, чем ожидалось.
WINSergey
Как получить доступ к этим журналам? (У меня 0 опыта работы с xCode)
Бен
Окно @Ben -> Устройства -> Выберите устройство с левой стороны ->
Готово
4
В моем случае символизирование было продолжением навсегда. Я принудительно перезагружаю телефон с помощью кнопки включения / выключения и кнопки домой. Теперь быстро закончил символизировать, и я начинаю запускать свое приложение через xcode.
Я знаю, что это не техническое решение, но у меня был iphone, связанный с компьютером кабелем и отсоединение устройства от компьютера и подключение его снова (снова кабель), работало для меня, поскольку я не мог решить это с решениями, которые являются предусмотрено раньше.
Это могло быть удачным выбором времени ... или задержкой реакции на другие ваши действия. Я отключился и снова подключился, и он вернулся в этот режим, пока не закончил.
Пол Масри-Стоун
0
Он сравнивает журналы сбоев, полученные с устройства, с заархивированной (обозначенной как правильная) версией ваших приложений, чтобы попытаться определить, где в вашем коде произошел сбой.
Досадная ошибка. Я решил это, подключив кабель непосредственно в iPad. По какой-то причине процесс никогда не закончился бы, если бы у меня был iPad на стойке Apple.
Это ошибка, потому что она НИКОГДА не завершится, если она будет у меня на стенде.
GoldenJoe
2
Я признаю, что ответ плохо выражен, но он был действительно правильным для меня, подключение напрямую к разрешенному для меня порту usb, несмотря на то, что usb-концентратор работал нормально для любой другой задачи
jalone
0
Добавить версию SDK, соответствующую вашему iPhone iOS, например: iOS 10.3
Ответы:
Он загружает (отладочные) символы с устройства, поэтому появляется возможность отладки на устройствах с этой конкретной версией iOS, а также для символизации отчетов о сбоях, которые произошли в этой версии iOS.
Поскольку символы зависят от процессора, вышеприведенное работает только в том случае, если вы импортировали символы не только для конкретного устройства iOS, но и для конкретного типа процессора. В настоящее время необходимы следующие типы процессоров: armv7 (например, iPhone 4, iPhone 4s), armv7s (например, iPhone 5) и arm64 (например, iPhone 5s).
Поэтому, если вы хотите символизировать отчет о сбое, который произошел на iPhone 5 с armv7s, и использовать только символы armv7 для этой конкретной версии iOS, Xcode не сможет (полностью) символизировать отчет о сбое.
источник
В Версии Xcode 6.1.1 (6A2008a) после «Обработки файлов символов» папка, содержащая символы, связанные с устройством (включая версию iOS и тип процессора), была создана в ~ / Library / Developer / Xcode / iOS DeviceSupport / следующим образом:
источник
(null) ((null))
самом деле.xCode просто скопировать все журналы сбоев. Если вы хотите ускорить: удалите количество отчетов о сбоях после анализа, прямо в этом окне.
источник
В моем случае символизирование было продолжением навсегда. Я принудительно перезагружаю телефон с помощью кнопки включения / выключения и кнопки домой. Теперь быстро закончил символизировать, и я начинаю запускать свое приложение через xcode.
источник
Я знаю, что это не техническое решение, но у меня был iphone, связанный с компьютером кабелем и отсоединение устройства от компьютера и подключение его снова (снова кабель), работало для меня, поскольку я не мог решить это с решениями, которые являются предусмотрено раньше.
источник
Он сравнивает журналы сбоев, полученные с устройства, с заархивированной (обозначенной как правильная) версией ваших приложений, чтобы попытаться определить, где в вашем коде произошел сбой.
Посмотрите на местоположение файла символа xcode для деталей
источник
Досадная ошибка. Я решил это, подключив кабель непосредственно в iPad. По какой-то причине процесс никогда не закончился бы, если бы у меня был iPad на стойке Apple.
источник
Добавить версию SDK, соответствующую вашему iPhone iOS, например: iOS 10.3
дорожка:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
Это скачивание. Когда все закончится, все в порядке. Как показано на рисунке:
источник