Как вручную обозначить сбой 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.

Вот шаги:

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

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

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

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

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

  1. Чтобы найти символическую ошибку, она должна отличаться от псевдонима выше:

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

  1. Установите переменную DEVELOPER_DIR:

export DEVELOPER_DIR = '/ Applications / Xcode.app / Contents / Developer'

  1. С 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 сможет найти их с помощью прожектора.

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

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