Когда собираешь приложени можно назвать .app не так как записно в plist'е. Например приложение называется RealBoxing2, а при сборке к названию самого файла приложения можно добавлять конфигурацию. Тогда приложение будет иметь название RealBoxing2-Shipping.app.
При этом креш-лог будет содержать строчки типа
5 RealBoxing2 0x0000000100d7eeb0 0x10009c000 + 13512368
CCrachLog.cs:92 ты проверяешь совпадает ли имя файла, который был сгенерен с именем приложения из крешлога. В данном случае они не будут совпадать и лог не будет распарсен.
Я предлагаю брать имя приложения не из имени файла, а из plist'a
В dSYM есть Contents/Info.plist который содержит CFBundleIdentifier, там, среди прочего, и лежит правильное имя аппликухи.
Я могу сделать патчик какой-то, но не вижу средств для парсинга плистов.
А, там же есть boost
Привет.
Согласен, правельнее из plist.
Кстати там не совсем полный буст.
Я добавил только то что нужно было для shared_ptr.
Можно впринципе и все остальное от boost туда добавить.
С уважением,
Андрей.
Хорошо, я посмотрю что там есть, может добавлю буст.
Last edit: Teivaz 2015-08-27
Привет.
Вобщем нашол еще одну проблемму пока разбирался с этой.
Если изменить свойство Executable Prefix то у dSYM
будет изменено название (у бинарника), при этом в info.plist (именно dSYM) нет ни единого поля
с правильным названием файла (пример в SVN_SF\trunk\TestCases\Ticket_2 закомитил в транке).
Решил искать в папке XXXXXXXX.app.dSYM\Contents\Resources\DWARF\ первый Mach-O по Magic Number. Это решение будет работать и для App. Этот функционал начинает работать только в случае если стандартное решение ничего не нашло, такчто только в некоторых случаях поис будет длиться дольше поскольку нужно читать все файлы в папке и проверять их заголовки.
Для App можно сделать правильно с info.plist но это займет не мало времени т.к. нужно найти нормальную либу для парсинга binary plist + у xcode есть опция "Create Info.plist Section in Binary" тоесть нужно будет еще искать info.plist в какомто сегменте Mach-O (Executable) файла что тоже не быстро реализуеться.
Так что решение с поиском первого Mach-O файа самое дешовое и надежное но не очень правильное, но пока оставлю его.
Версию 1.2.13 я выложил, можешь проверить починилось ли это некорректное поведение.
С уважением,
Андрей.
Last edit: andrey.simiklit 2015-08-29
Извини, я тут сильно занят на работе.
Да, там как-то всё непросто с этим делом.
Я потестил 1.2.13 на своём проблемном крешлоге, всё равно не работает пока.
Как будет время я подебажу что там.
Привет.
А ты не сможешь мне расшарить это проблемный dSYM и крешь лог (может через dropbox или google drive)?
С уважением,
Андрей.
Привет. Извини что долго не писал, всё времени не было. Я посмотрел внутрь этого дсима, крешлога и апликухи. Названия реально разные, там через плист не получится. У нас проект на анриале, а он там пересобирает бинарник как хочет, кроме того ещё куча самописных скриптов которые это дело туда-сюда копируют. В итоге имена совсем меняются.
Но я нашел другое решение. Тебе оно должно понравиться.
В крешлоге есть раздел Binary Images, в нём правильно указано название аппликухи и MD5 бинарника. контрольные суммы с дсимом совпадают, а имя, по которому мы будем искать строки для симболикейта можно брать отсюда же.
Можно пойти даже дальше - взять эту область памяти и симболикейтить все адреса, которые в неё попадают.