обратная трассировка все еще не читается после символического журнала сбоя iPad

У меня есть эти журналы сбоев, и после того, как я уронил их в органайзер, они автоматически символизируются, но результат всегда одинаков. вызовы iOS символизируются, а мое приложение не звонит.

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

Есть идеи, что происходит? Итак, я получаю что-то вроде этого:

    Last Exception Backtrace:
0   CoreFoundation                  0x36d4088f __exceptionPreprocess + 163
1   libobjc.A.dylib                 0x31071259 objc_exception_throw + 33
2   CoreData                        0x350337ab -[NSPersistentStoreCoordinator removePersistentStore:error:] + 227
3   MyApp                           0x00139fbb 0x2e000 + 1097659
4   MyApp                           0x0013998d 0x2e000 + 1096077
5   MyApp                           0x00139a5d 0x2e000 + 1096285
6   libdispatch.dylib               0x3171d61f dispatch_once_f$VARIANT$mp + 47
7   MyApp                           0x001399ff 0x2e000 + 1096191
8   MyApp                           0x00139b47 0x2e000 + 1096519
9   MyApp                           0x0008915d 0x2e000 + 373085
10  MyApp                           0x0008a11b 0x2e000 + 377115
11  UIKit                           0x36ffbd3d -[UIViewController _setViewAppearState:isAnimating:] + 145
12  UIKit                           0x36ffeaa3 -[UINavigationController _startTransition:fromViewController:toViewController:] + 815
13  UIKit                           0x36ffe6ab -[UINavigationController _startDeferredTransitionIfNeeded] + 251
14  UIKit                           0x36ffe56b -[UILayoutContainerView layoutSubviews] + 179
15  UIKit                           0x36fbd0bd -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 149

Вы можете видеть, что функции UIKit были символизированы, но не MyApp

Ответы на вопрос(1)

Решение Вопроса

которая сгенерировала отчет о сбое. Обычно вы получаете этот результат в XCode, если dSYM не был найден с помощью сценария символизации через прожектор. Если это отладочная сборка, а вы тем временем создали новую сборку, вам не повезло. В противном случае убедитесь, что каталог, в котором хранится отладочная сборка, проиндексирован Spotlight. Если это из сборки, которая заархивирована, убедитесь, что заархивированный каталог проиндексирован Spotlight.

В отчете о сбое содержится заголовок раздела «Двоичные изображения», а в верхней части двоичного файла вашего приложения указывается двоичный UUID. Это выглядит какc42a118d722d2625f2357463535854fd, который необходимо изменить на верхний регистр и формат 8-4-4-4-12, после чего он будет выглядеть следующим образом:C42A118D-722D-2625-F235-7463535854FD.

Вы можете использовать это для поиска dSYM через прожектор в терминале через:

mdfind "com_apple_xcode_dsym_uuids == C42A118D-722D-2625-F235-7463535854FD"

 Edward Ashak29 мая 2012 г., 14:51
the mdfind дал мне идею сделать mdlist для файла myApp.app.dSym и показать другой uuid. это должно быть проблемой, несоответствие между сбоем и файлом dSym, имеет ли это смысл?
 Edward Ashak29 мая 2012 г., 18:01
Привет, Керни, я проверял ревизии кода, которые мы отправили в магазин и собирал заново, чтобы сгенерировать файлы dSym и приложения, но не повезло. Есть ли способ обратить UUID во что-то еще? Или это одностороннее преобразование?
 Kerni29 мая 2012 г., 15:33
В отчете о сбое всегда отображается UUID двоичного файла приложения. Таким образом, если у вас есть двоичный файл приложения с этим UUID, а сохраненный вами dSYM имеет другой UUID, то процесс сборки не сгенерировал dSYM (проверьте временные метки, например?) Или был перезаписан позже. Вы можете использоватьdwarfdump --uuid myApp.app/myApp для двоичного приложения иdwarfdump --uuid myApp.app.dSYM в пакете dSym, чтобы получить UUID тех, кто их сравнивает.
 Edward Ashak29 мая 2012 г., 14:46
Привет, Керни, у меня есть файлы .dSym и .app, и я также попытался символьным сбоем из Xcode из командной строки, но не повезло. Я проверил версию из git repo, чтобы поработать с ней, а также мы сохранили файлы .dSym и .app при отправке приложения. когда я запускаю mdfind, он ничего не возвращает обратно. Я все еще пытаюсь понять, как символизировать, какие-либо идеи о том, куда идти дальше?
 Kerni29 мая 2012 г., 18:14
Каждый раз, когда вы запускаете процесс сборки, двоичный файл будет уникальным, получая новый UUID. Так что нет никакого способа изменить это. Что вы можете попробовать, так это изменить UUID в отчете о сбое на идентичный UUID новых сборок (строчные и без символов) и посмотреть, получите ли вы какой-нибудь полезный результат. Это может быть скорее удача, если это работает, это не должно быть сделано. Обязательно используйте функцию архивирования для appstore и бета-сборок в будущем, чтобы иметь все доступное.

Ваш ответ на вопрос