it-swarm.com.ru

Ошибка Xcode 4 символизировать Crash Log

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

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

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

37
Andrei Neacsu

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

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

Как это:

Spotlight settings to suppress unhelpful .app files

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

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

24
Simon Whitaker

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

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

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

mdimport ~/Library/Developer/Xcode/Archives/

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

24
Christopher Pickslay

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

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

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

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

3
Alastair Stuart

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

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

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

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

3
Hiltmon

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

Двоичные изображения: 0x100000000 - 0x100021ff7 + com.developer.foobar 1.1 (2) <D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8> /Applications/FooBar.app/Contents/MacOS/FooBar

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

mdfind com_Apple_xcode_dsym_uuids == D1B7F956-7D79-3D4D-BA53-E9EBB368A9F8

Для приложений 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)

0
valexa

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

0
Nic