Обробка файлів символів у 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, ні з iPhone4. Завжди він зупинився б на півдорозі і ніколи не завершився, навіть через півгодини. Зрештою, я змусив його працювати ... вирвавши абсолютно новий роз'ємний кабель і підключивши його безпосередньо до свого Mac Mini (раніше я був підключений через подовжувач). Я зробив висновок, що поганий зв`язок РЕАЛЬНО псується з оновленнями символів.
Еш

5
То чому б не зв’язати ці символи з розподілом xcode? Навіщо виникати всі проблеми з витяганням їх з пристрою?
Метью Ексон

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

@VladimirDespotovic Що ти хочеш вирішити тут? Це не проблема. Це потрібно зробити, оскільки налагоджувачу потрібні ці дані, а для символізації збоїв це також потрібно. Питання також не вказало проблеми.
Керні

36

У Xcode версії 6.1.1 (6A2008a) після "Оброблення файлів символів" в ~ / Library / Developer / Xcode / iOS DeviceSupport / створено подібне: була створена папка, що містить символи, пов'язані з пристроєм (включаючи версію iOS та тип процесора).

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


6
що було в (null) (null)?
Антон Тропашко

6
@AntonTropashko (null) ((null))насправді.
Алехандро Іван

6
У моєму випадку "(null) ((null))" не містив ... нічого!
Sjakelien

7
Оскільки файли символів завантажуються при необхідності, я перемістив більшість усіх папок у цьому місці. Він випустив понад 24 концерти на моєму SSD!
Sjakelien

@Sjakelien Folder добре помічений тоді
Бред Томас

19

xCode просто скопіюйте всі журнали збоїв. Якщо ви хочете пришвидшити: видаліть кількість звітів про збої після їх аналізу безпосередньо в цьому вікні.

Devices -> View Device Logs -> All Logs

скріншот


@QLiu Звичайно. Здається, що помилка, або журнали більше, ніж очікувалося.
WINSergey

Як отримати доступ до цих журналів? (У мене 0 досвід роботи з xCode)
Бен

@Ben Window -> Пристрої -> Виберіть свій пристрій ліворуч -> зроблено
WINSergey

4

У моєму випадку символізувати було вічно. Я змушую перезапустити телефон як кнопкою включення / вимкнення, так і кнопкою додому. Тепер швидко закінчується символізація, і я починаю запускати свою програму через xcode.


1

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


Це, можливо, пощастило вчасно ... або запізніла реакція на інші дії, які ви вчинили. Я відключився і знову підключився, і він перейшов у цей режим, поки не закінчився.
Пол Масрі-Стоун

0

Він порівнює журнали аварійних завантажень, отримані з пристрою, з архівованою (символізованою, щоб бути правильною) версією ваших додатків, щоб спробувати отримати, де у вашому коді стався збій.

Подивіться на Xcode символ розташування файлу для деталей


0

Прикри помилка. Я вирішив це, підключивши кабель безпосередньо до iPad. Чомусь процес ніколи не закінчиться, якби я мав iPad на прохідній підставці Apple.


3
Це помилка, оскільки вона НІКОЛИ не завершилася, якби я мав її на стенді.
GoldenJoe

2
Я усвідомлюю, що відповідь виражена погано, але для мене це було дійсно правильно, підключення безпосередньо до порту usb вирішено для мене, незважаючи на те, що usb-hub працював чудово для будь-якого іншого завдання
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.