Подтвердить что ты не робот

Ошибка Xcode 4 для обозначения журнала сбоев

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

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

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

4b9b3361

Ответ 1

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

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

Вот так:

Spotlight settings to suppress unhelpful .app files

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

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

Ответ 2

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

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

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

mdimport ~/Library/Developer/Xcode/Archives/

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

Ответ 3

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

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

  • Возможно, он найдет версию ваше приложение, установленное на симуляторе (назад, но иногда это делает это для меня). Reset ваш симулятор.

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

Ответ 4

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

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

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

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

Ответ 5

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

Ответ 6

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

Двоичные изображения:        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 и он может использовать ручной подход на http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

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

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

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