Как вручную обозначить сбой iOS для просмотра журналов сбоев - PullRequest
25 голосов
/ 30 сентября 2010

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

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 ]

89 голосов
/ 27 декабря 2011

РЕДАКТИРОВАТЬ :: 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

Это должно вернуть:

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

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

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


Оригинальный ответ :: Xcode <4.3 </h1> Путь для символического сбоя Поиск с терминала, используя: find / Developer -name symbolicatecrash -type f Для меня это вернулось: / Разработчик / Платформы / iPhoneOS.platform / Разработчик / Library / PrivateFrameworks / DTDeviceKit.framework / Версии / A / Ресурсы / 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 в искателе щелкните правой кнопкой мыши (или ctrl click) этот файл и выберите «Показать содержимое пакета». Затем вы увидите папку "dSYMs". Внутри папки "dSYMs" вы найдете файл "YourAppName.app.dSYM", который вам понадобится для обозначения файлов.

5 голосов
/ 18 июля 2015

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

Этот плагин внутренне включает в себя сценарий оболочки, который выполняет следующие действия:Команды для ручного обозначения сбоя.

  1. Установить псевдоним для perl-скрипта symbolicatecrash.pl

alias symbolicatecrash = '/ Applications / Xcode.app / Contents / Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/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.

4 голосов
/ 14 октября 2014

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

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

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

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

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

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

2 голосов
/ 25 ноября 2013

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

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

2 голосов
/ 30 сентября 2010

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

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

1 голос
/ 24 февраля 2015

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

  1. Откройте Xcode 6
  2. Подключите ваше устройство разработчика
  3. В Xcode перейдите в Window> Devices> Selectваше устройство
  4. Нажмите «Просмотр журналов устройства»
  5. Перетащите отчет в окно, чтобы просмотреть его
...