Я пытаюсь использовать symbolicatecrash и получаю интересные результаты. Сотрудник построил нашу сборку дистрибутива на другой машине, поэтому он отправил мне файл dSYM. После запуска файла symbolicatecrash, найденного в
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash
он выполняет все функции Apple, но не мои. Проблема, похоже, в том, что он не может (или не хочет) найти файл dSYM, возможно потому, что в нем есть информация о машине моего коллеги. Когда я копирую шестнадцатеричный адрес из отчета о сбое, я могу использовать dwarfdump следующим образом:
dwarfdump --lookup 0x0001f892 --arch armv6 путь / к / MyApp.app.dSYM
Он правильно дает мне номер строки этого единственного звонка. Кроме того, symbolicatecrash может определять номера строк игры из нашего кода, но не из кода Apple. Я не знаю, почему он не видит материалов Apple, но все это заставляет меня думать, что проблема в том, чтобы найти dSYM, как упоминалось ранее.
Так. Есть ли способ просто передать путь dSYM в команду symbolicatecrash или каким-либо другим способом заставить ее работать? Потому что, серьезно, совершенно глупо создавать инструмент, который выполняет какой-то волшебный «поиск» вашего файла только для того, чтобы не найти его, потому что он этого не хочет.
Кроме того, есть идеи, почему сборка моего коллеги не отображает никаких функций Apple? И пока я здесь, что означает "+" в файле сбоя? Нравится:
0x00059f8c - [UIWindow sendEvent:] + 108