Как вручную обозначить сбой 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
Благодарю.
6 ответов
РЕДАКТИРОВАТЬ:: XCode 4.3
Вы захотите выполнить те же шаги, которые описаны в исходном ответе (ниже), с некоторыми исключениями.
Во-первых, вам нужно исправить путь Xcode. Откройте терминал и запустите:
/ usr / bin / xcode-select -print-path
Если он отображает "/ Developer" или что-либо кроме "/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", который вам понадобится для обозначения файлов.
Плагин доступен для XCode в меню продукта. Этот плагин доступен через менеджер пакетов Alcatraz или может быть загружен напрямую с github.
Этот плагин внутренне включает в себя сценарий оболочки, который выполняет настройку запуска следующих команд для ручного обозначения сбоя.
- Установите псевдоним для Perl-скрипта symbolicatecrash.pl
alias symbolicatecrash='/Applications/Xcode.app/ Содержание / Разработчик / Платформы /iPhoneOS.platform/ Разработчик / Библиотека /PrivateFrameworks/DTDeviceKit.framework/ Версии /A/ Ресурсы /symbolicatecrash'
- Чтобы найти символическую ошибку, она должна отличаться от псевдонима выше:
find /Applications/Xcode.app -name symbolicatecrash -type f
- Установите переменную DEVELOPER_DIR:
export DEVELOPER_DIR = '/ Applications / Xcode.app / Contents / Developer'
- С dSYM падение может обозначаться как:
symbolicatecrash /path/to/MyApp_2012-10-01_Device.crash /path/to/MyApp.app.dSYM.
Один из способов обозначить журнал сбоев - запустить на терминале следующую команду:
xcrun atos -o MyApp.app/MyApp -arch armv7 -l 0xb7000 -f MyApp.crash
Замените шестнадцатеричное число (0xb700) в приведенной выше команде на базовый адрес загрузки. Адрес базовой загрузки - это первый адрес памяти в строке сразу после
"Двоичные изображения:"
Чтобы получить файл.app:
Щелкните правой кнопкой мыши файл xcarchive и выберите "Показать содержимое пакета".App-файл находится в каталоге Products/Applications.
Я только что написал пост об отладке журнала сбоя 5 минут назад здесь: http://just2us.com/2010/10/reading-iphone-crashlog/
Вам может больше не понадобиться symbolicatecrash.sh, если перетаскивание журналов в Xcode достаточно для вашей цели. Я использую 3.2.4, и я не могу найти скрипт тоже.
Как объясняет Apple, Xcode попытается символизировать автоматически. Оно использует symbolicatecrash
и прожектор, чтобы сделать это. Однако, если приложение не было создано локально или было удалено, необходимые файлы.app и.dsym недоступны.
Так что держите файл dsym и приложение выпущенных версий. Инструменты сборки часто архивируют файл.dsym в файл.dsym.zip и упаковывают.app как.ipa. Вы можете разархивировать оба файла и скопировать.app и.dsym в одну папку. Тогда Xcode сможет найти их с помощью прожектора.
Вот простой метод, который я использую:
- Откройте Xcode 6
- Подключите устройство
- В Xcode, зайдите в Window > Devices > Select your device
- Нажмите "Просмотр журналов устройства"
- Перетащите свой отчет в окно, чтобы просмотреть его