Как вручную символизировать сбои iOS для просмотра журналов сбоев

Попытка отладки приложения. Проблема в том, что я не могу найти эту программу.

symbolicatecrash.sh

sudo cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneRemoteDevice.xcodeplugin/Contents/Resources/symbolicatecrash /usr/local/bin/

Это отдельная загрузка? Я использую XCode 3.2.3

Спасибо.

Ответ 1

EDIT:: XCode 4.3

Вы должны выполнить те же шаги, что и в исходном ответе (см. ниже), за некоторыми исключениями.

Сначала вам нужно исправить путь Xcode. Откройте терминал и запустите:

/usr/bin/xcode-select -print-path

Если в нем отображается "/Разработчик" или что-то другое, кроме "/Applications/Xcode.app/Contents/Developer/", то это неправильно. Чтобы исправить этот прогон, выполните команду:

sudo/usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

Теперь вы можете выполнить все шаги ниже, за исключением того, что команда symbolicatecrash находится в новом месте (снова). Это связано с тем, что Xcode теперь устанавливается как приложение. Чтобы найти symbolicatecrash запустите это с терминала:

find/Applications/Xcode.app -name symbolicatecrash -type f

Это должно возвратиться:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

Перед запуском symbolicatecrash вы можете перейти в этот каталог, например:

CD /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/


Оригинальный ответ:: Xcode < 4,3

Путь для символакраса

Поиск с терминала с помощью:

find/Developer -name symbolicatecrash -type f

Для меня это вернулось:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

Как вручную отображать журнал сбоев

Запустите команду symbolicatecrash с журналом сбоев в качестве первого аргумента и вашим файлом dSYM в качестве второго аргумента. Обратите внимание, что если вы будете запускать symbolicatecrash из текущего каталога, который вы ДОЛЖНЫ поставить ./ спереди, как ./symbolicatecrash, если ваша переменная среды PATH не содержит каталог, в котором находится эта команда.

Я перешел в каталог, в котором сначала была команда symbolicatecrash (примечание: будет отличаться для Xcode 4.3, см. сверху):

CD /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/

Затем я выполнил следующую команду:

./symbolicatecrash/somePath/MyCrashLogFile.crash /somePath/MyAppName.app.dSYM

Как найти файл dSYM:

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

Вот шаги:

  • Щелкните правой кнопкой мыши (или ctrl щелкните) архив с органайзера и выберите "Показать в Finder".
  • Из файла xcarchive в finder щелкните правой кнопкой мыши (или ctrl щелкните) этот файл и выберите "Показать содержимое пакета". Затем вы увидите папку "dSYMs".
  • В папке "dSYMs" вы найдете файл "YourAppName.app.dSYM", который вам нужно будет символизировать.

Ответ 2

Один из способов символизировать журнал сбоев - запустить следующую команду на терминале:

xcrun atos -o MyApp.app/MyApp -arch armv7 -l 0xb7000 -f MyApp.crash

Замените пример шестнадцатеричного числа (0xb700) в приведенной выше команде с адресом базовой загрузки. Базовый адрес загрузки - это первый адрес памяти в строке сразу после

"Двоичные изображения:"

Чтобы получить файл .app:

Щелкните правой кнопкой мыши файл xcarchive и выберите "Показать содержимое пакета". Файл .app находится в каталоге Products/Applications.

Ответ 3

Плагин доступен для Xcode в меню Product. Этот плагин доступен через менеджер пакетов Alcatraz или может быть напрямую загружен из github.

В этом плагине встроена оболочка script, которая выполняет настройку следующих команд для обозначения ручного сбоя.

  • Установить псевдоним symbolicatecrash.pl perl script

Псевдоним symbolicatecrash = '/Applications/Xcode.app/Содержание/Разработчик/Платформы/iPhoneOS.platform/Разработчик/Library/PrivateFrameworks/DTDeviceKit.framework/Версии/A/Ресурсы/symbolicatecrash

  1. Чтобы найти symbolicatecrash, если он отличается от псевдонима выше:

find/Applications/Xcode.app -name symbolicatecrash -type f

  1. Задайте переменную DEVELOPER_DIR:

export DEVELOPER_DIR = '/Приложения/Xcode.app/Содержание/Разработчик'

  1. С dSYM авария может символизироваться как:

symbolicatecrash/path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM.

Ответ 4

Я только что написал сообщение об отладке журнала сбоев 5 мин. назад здесь: http://just2us.com/2010/10/reading-iphone-crashlog/

Вам больше не понадобится symbolicatecrash.sh, если перетащить журналы на Xcode достаточно хорошо для вашей цели. Я использую 3.2.4, и я тоже не могу найти script.

Ответ 5

Как объясняет Apple, Xcode будет пытаться автоматически символизировать. Для этого используется symbolicatecrash и spotlight. Однако, если приложение не было создано локально или оно было удалено, то необходимые файлы .app и .dsym недоступны.

Итак, держите файл dsym и приложение выпущенных версий. Инструменты сборки часто заархивируют файл .dsym в .dsym.zip и упаковывают .app как .ipa. Вы можете разархивировать оба и скопировать файлы .app и .dsym в одну и ту же папку. Тогда Xcode сможет найти их с помощью прожектора.

Ответ 6

Вот простой способ, который я использую:

  • Открыть Xcode 6
  • Подключите устройство dev
  • Внутри Xcode перейдите в Окно > Устройствa > Выберите свое устройство
  • Нажмите "Просмотр журналов устройств"
  • Перетащите отчет в окно, чтобы просмотреть его