Вопрос по ios, objective-c – обратная трассировка все еще не читается после символического журнала сбоя iPad

2

У меня есть эти журналы сбоев, и после того, как я уронил их в органайзер, они автоматически символизируются, но результат всегда одинаков. вызовы 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   ответ
7

которая сгенерировала отчет о сбое. Обычно вы получаете этот результат в 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"

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

Похожие вопросы