2009-03-25 6 views
4

Я использовал следующий сценарий, чтобы символизировать отчет о аварии я получил от пользователя:symbolicatecrash

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Ресурсы/symbolicatecrash myapp_iPod-Touch.crash myapp.app.dSYM> test.txt

Это совпадает все каркасных вызовов, но ни один из моего кода. Как я могу заставить его обработать мой код ?. Дайте мне некоторые идеи, пожалуйста!

ответ

6

В качестве Craig Hockenberry points out, файл dSYM, который вы используете для этого, должен быть точным, когда вы скомпилировали версию приложения, в котором работает ваш пользователь. Если вы не сохранили этот файл, вы не сможете разрешить символы в своем приложении. Вы не можете использовать любой файл dSYM, созданный вашей последней сборкой, для работы с более старой поданной версией вашего приложения.

+0

Но: я должен быть в состоянии синхронизировать с тегом checkin в моей системе управления версиями, перестроить его и использовать _those_ dSYMS, справа ? Не имея никаких проблем с символикой crash ATM. –

+1

Это предполагает, что все то же, что и в вашей системе, между тем, как вы впервые скомпилировали приложение, и теперь. Если вы обновили Xcode или iPhone SDK, вы не сможете генерировать то же самое двоичное значение, как и при подаче приложения. –

+0

Да, вам нужно держать свои dSYM под контролем версий. –

4

Известная проблема в утилите symbolicatecrash, которая поставляется с iPhone SDK 2.2.1, также, если это SDK, который вы используете в данный момент. Вам необходимо загрузить новый двоичный код от http://developer.apple.com/iphone/library/technotes/tn2008/tn2151.html

Надеюсь, это поможет вам в ваших проблемах.

3

Существует новый Symbolicator сценарий, который был выпущен, который мог бы помочь

+0

Он пока не работает на журналах аварий iPhone. Я не разработчик iPhone, поэтому мне было бы трудно это сделать (особенно без комплектов dSYM для iPhone-приложений для тестирования). Патчи приветствуются. –

5

UPDATE В XCode 4, около 2012, symbolification отлично работает в XCode Организатора, даже если dSYMs имеют место в их путь (я думаю).

p.s. держать dSYMs под контролем версий

UPDATE По состоянию на XCode 3.2.5 (ноябрь 2010 года) symbolification сделано в журналах устройств в окне Organizer, кажется, работает очень хорошо.

Прежде всего, symbolicatecrash мусор *, но перед погружением в и фиксируя его, убедитесь, что ваш .app расслоение находится в том же каталоге, что и .dSYM.

У вас есть точки или тире в имени или идентификаторе файла приложения? Если это так, вы должны применить Alan Quatermain fix. Он предназначен для чтения 3.0 crashdumps в среде 2.x, но также правильно обрабатывает точки и тире в имени и идентификаторе приложения. Duh. Регулярных выражений трудно.

После этого вам придется взломать perl. Попробуйте ./symbolicatecrash -Av mycrash.crash>/dev/null , чтобы узнать, где это происходит.

Для моей проблемы я должен был прокомментировать как quoteMeta ($ dsymdir); и chop ($ executable); линий. Тогда у меня было что-то, что смутно сработало.

И это был товар для доставки. Добро пожаловать в будущее.

С точки зрения * SDK 2.2.1, кто знает, может быть, в версии 3.0 GM он прочный. Это могло случиться.

0

(Xcode 4.2) symbolicatecrash - это perl-скрипт, который использует spotlight для поиска файлов dSYM, принадлежащих к поврежденному приложению. Если вы запустите symbolicatecrash с параметром -v (verbose), вы увидите что-то вроде: Поиск в Spotlight для dsym с UUID ... Запуск mdfind «com_apple _... == ...»

Итак, будьте убедитесь, что прожектор работает, а индекс для прожектора активен для тома, где находится ваш материал, с командой mdutil: mdutil -s -a Если объем ваших архивных приложений включен, он не индексируется, обязательно включите индексирование. (Как root/sudo: mdutil -i on/Volumes/...)

Смежные вопросы