Symbolicatecrash не может найти символы

Я использую XCode 4.5.2, и у меня возникают проблемы с запуском Symbolicatecrash.

Обратите внимание, что это приложение и dsym, которые НЕ были сгенерированы в моей системе и отсутствуют в архиве.

Пока что я:

  1. export DEVELOPER_DIR = / Приложения / Xcode.app sudo xcode-select
  2. sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
  3. cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources
  4. ./symbolicatecrash -v -o test.txt ~ / Загрузки /OnDeckCrash/OnDeck_2012-11-26-152754_Andys-phone.crash ~/ Загрузки /OnDeckCrash/OnDeck.app.dSYM

Это НЕ создавало "test.txt". Кажется, что не может найти никаких символов вообще. Он сообщает что-то вроде этого для каждого модуля:

...........fetching symbol file for CoreFoundation--[undef] 
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of e30fc309df7b3c9f8ac57f0f6047d65f
Running mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"
@dsym_paths = (  )
@exec_names = (  )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation

Обратите внимание, что пакет приложения находится в том же каталоге, что и пакет mSYM. Я также попытался добавить символьную ошибку к моему пути и выполнить из каталога, в котором находятся.dSYM и.app. Это не имеет значения.

Любые предложения о том, как заставить это работать?

4 ответа

У меня была такая же проблема сегодня. В моем случае mdfind не смог найти папку "Архивы" (/Users/xxx/Library/Developer/Xcode/Archives/). Поэтому я перешел в "Системные настройки" - "Spotlight" - "Privacy", добавил, а затем удалил папку "Archives". Перезапустите Xcode или Re-символику

mdfind используется в symbolicatecrash, чтобы найти dsym относительно файла сбоя с помощью uuid в вашем случае

mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"

Вы также можете запустить

mdfind "com_apple_xcode_dsym_uuids == *"

перечислить все dsym местоположения, которые знает mdfind. Это даст вам представление, есть ли ваш dsym в списке или нет.

Также запустите это для вашего dsym, чтобы получить UUID вашего приложения

dwarfdump --uuid xxx.app.dSYM/| tr '[:upper:]' '[:lower:]' | tr -d '-'

Если вы никогда не подключаете неисправное устройство к компьютеру, у вас нет файлов символов для этого устройства. Вот почему Symbolicatecrash не может найти файлы Dsym для системных библиотек.

Просто подключите ваше устройство к компьютеру и подождите, пока xcode загрузит файлы символов.

Эта проблема связана с тем, как я могу указать Spotlight проиндексировать мои пакеты.dSYM?

Я пытался принудительно импортировать dSYM в мою ~/Library, но безуспешно, поэтому ответ таков:

FINAL SOLUTION

Configure Xcode so that the archive folder is located outside of ~/Library.

В строке 4 последним аргументом должен быть каталог, содержащий.app и.dSYM. По крайней мере, это то, что я делаю, когда я запускаю symbolicatecrash скрипт из командной строки.

Другие вопросы по тегам