Как вручную символизировать сбои 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
- Чтобы найти symbolicatecrash, если он отличается от псевдонима выше:
find/Applications/Xcode.app -name symbolicatecrash -type f
- Задайте переменную DEVELOPER_DIR:
export DEVELOPER_DIR = '/Приложения/Xcode.app/Содержание/Разработчик'
- С 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 > Выберите свое устройство
- Нажмите "Просмотр журналов устройств"
- Перетащите отчет в окно, чтобы просмотреть его