Ошибка Xcode 4 символизировать Crash Log - PullRequest
37 голосов
/ 28 марта 2011

Я только что обновил свой Xcode до 4.0.1.Теперь у меня есть проблема с символикой журналов аварий, полученных от моего тестера и даже от моего телефона тоже.

Когда я собираю дистрибутив AdHoc, использую схему «Архив», я создаю файл * .ipa с его учетными данными разработчика.

В этом ли проблема?И я не могу найти файлы dSym для этих сборок AdHoc.

Ответы [ 6 ]

24 голосов
/ 06 апреля 2011

Для меня ни строка 323 edit, ни исключения Spotlight не исправили это. Поэтому я отследил проблемы в symbolicatecrash и опубликовал исправленную версию на github . Просто замените / usr / local / bin / symbolicatecrash, и ваши отчеты о сбоях iOS снова начнут символизировать.

Этот патч может не работать для приложений Mac, так как он делает предположения о структуре каталога .xcarchive, который, как представляется, не подходит для приложений для настольных компьютеров.

Редактировать : у вас могут возникнуть проблемы, если Spotlight не проиндексировал ваши архивы. Вы можете получить принудительный индекс, запустив в терминале следующее:

mdimport ~/Library/Developer/Xcode/Archives/

Подробнее об устранении неисправностей здесь .

24 голосов
/ 30 марта 2011

В дополнение к ответу Куба я обнаружил, что добавление этих каталогов в список игнорирования Spotlight (Системные настройки → Spotlight → Конфиденциальность) помогает:

  • ~/Library/Developer/Xcode/DerivedData/ (артефакты сборки Xcode 4)
  • ~/Library/Application Support/iPhone Simulator/ (файловая система для симулятора iPhone)

Например:

Spotlight settings to suppress unhelpful .app files

(см. это сообщение в блоге для дополнительной информации.)

Обновление : из комментария joerick : "Это работает, но это также означало, что Instruments.app не смог найти символы отладкипоэтому мне пришлось удалить DerivedData из списка конфиденциальности, чтобы выполнить профилирование. "- имейте это в виду, если вы используете инструменты.

3 голосов
/ 30 марта 2011

У меня была такая же проблема сегодня.По моим исследованиям в Интернете, есть проблема с библиотеками armv6, которые приводят к сбою процесса обработки символов.Я нашел ответ на форумах здесь .

. Для тех, у кого нет доступа, вам нужно создать копию сценария symbolicatecrash из /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/.Отредактируйте файл и замените 'die' в строке 323 на 'print' (вот почему он не работает, здесь сценарий не работает).

Затем запустите symbolicatecrash для вашего журнала сбоев.Вы увидите ошибку из строки 323, но тогда она будет символизировать все ваши строки и переменные.Он все еще не работает для системных библиотек, но дает достаточно информации для исправления ваших собственных ошибок.

Надеюсь, это поможет.

3 голосов
/ 29 марта 2011

Сценарий символизации имеет проблему с поиском правильного двоичного файла / dSYM.Он использует Spotlight для этого и часто взлетает.Вот несколько вещей, которые можно попробовать:

  1. Убедитесь, что в вашем .app нет пробела.

  2. Возможно, он находитверсия вашего приложения, установленная на симуляторе (задом наперед, но иногда она делает это для меня).Сбросьте ваш симулятор.

  3. Очистите каталог сборки.

0 голосов
/ 09 июня 2011

Чтобы найти файл dSYM на основе его идентификатора в журнале сбоев, который выглядит следующим образом:

Двоичные изображения: 0x100000000 - 0x100021ff7 + com.developer.foobar 1.1 (2)/Applications/FooBar.app/Contents/MacOS/FooBar

вы можете сделать:

mdfind com_apple_xcode_dsym_uuids == D1B7F956-7D79-3D4D-BA53-E9EF360A *

Для приложений OSX, созданных с использованием «DWARF с dSYM», вам на самом деле не нужен файл dSYM, и вы можете использовать ручной подход по адресу https://developer.apple.com/library/content/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-SYMBOLICATE_WITH_ATOS

Дополнительно, чтобы проверить UID двоичного файла, который вы можетесделать что-то вроде

dwarfdump --uuid /Users/valexa/Desktop/GPSnote.app/GPSnote 

UUID: 6194D2B0-4E61-3834-AD15-C279EB1848XX (armv7)
UUID: D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8 (armv7s) * 10

0 голосов
/ 30 марта 2011

Я думаю, у меня была эта проблема, или что-то подобное. Xcode 4.0 не отображал символы сбоя, которые я получил от тестера. Я решил исправить это, открыв созданный мной xarchive и скопировав из него файл dsym (щелкните правой кнопкой мыши и «просмотрите содержимое пакета»), чтобы поместить его рядом с папкой архива. Я не могу гарантировать, что это было решением - в то время я пробовал ряд других решений, но я знаю, что у меня есть символы сейчас, а раньше их не было. Стоит попробовать?

...