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

Спасибо.


person butchcowboy    schedule 30.09.2010    source источник


Ответы (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, запустите это с терминала:

найти /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», который вам понадобится для обозначения файлов.
person Sam    schedule 27.12.2011
comment
Я получаю эту ошибку, когда пытаюсь запустить symbolicatecrash: Ошибка: DEVELOPER_DIR не определен в строке ./symbolicatecrash 53. РЕДАКТИРОВАТЬ: это сработало: export DEVELOPER_DIR = / Applications / XCode.app / Contents / Developer - person elsurudo; 28.02.2013
comment
Следует отметить, что символика не будет работать, если у вас нет надлежащего .app, извлеченного из того же .ipa, который вызвал сбой, в той же папке, что и ваши .dSYM и .crash. Я предлагаю создать новую папку на рабочем столе и поместить в нее файлы .dSYM и .crash. Затем извлеките .app из вашего ApplicationName.ipa, изменив имя на ApplicationName.zip, дважды щелкните его, чтобы разархивировать содержимое. Откройте папку и найдите внутри ApplicationName.app. Скопируйте ApplicationName.app в свою папку на рабочем столе. Теперь запустите символику на вашем .crash и .dSYM в этой папке. - person Jeremy Fox; 23.07.2013
comment
В Xcode 6 путь равен Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash - person Andrew; 04.06.2014
comment
Для устранения ошибки необходимо запустить $export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/: DEVELOPER_DIR не определен - person Sazzad Hissain Khan; 17.08.2017

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

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

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

псевдоним symbolicatecrash = '/ Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / Library / PrivateFrameworks / DTDeviceKit.framework / Versions / A / Resources / symbolicatecrash'

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

найти /Applications/Xcode.app -name symbolicatecrash -type f

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

экспорт DEVELOPER_DIR = '/ Applications / Xcode.app / Contents / Developer'

  1. С помощью dSYM аварию можно обозначить следующим образом:

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

person MaheshShanbhag    schedule 18.07.2015

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

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

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

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

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

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

person Kumar Summan    schedule 14.10.2014
comment
Помог мне. Спасибо. Symbolicatecrash по некоторым причинам символизировал только часть методов из моего приложения. xcrun atos показывает мне все. Здесь вы можете увидеть объяснение некоторых аспектов atos: stackoverflow.com/questions/7675863/ - person Petr; 15.12.2015

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

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

person samwize    schedule 30.09.2010
comment
Да, в этом сценарии больше нет необходимости. - person Brad Larson; 01.10.2010
comment
@BradLarson Оказывается, скрипт все еще необходим. Я импортировал архив, созданный на другом компьютере, и по какой-то причине XCode просто не будет автоматически символизировать журналы сбоев для сборок, сделанных из этого архива. :( Однако, используя symbolicatecrash, я все еще мог символизировать сбои. Тем не менее, я определенно предпочел бы, чтобы XCode символизировал его автоматически, просто это не всегда все. - person Sam; 05.01.2012

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

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

person Community    schedule 25.11.2013

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

  1. Откройте Xcode 6
  2. Подключите свое устройство разработчика
  3. В Xcode перейдите в Window> Devices> Select your device.
  4. Нажмите "Просмотреть журналы устройства".
  5. Перетащите отчет в окно, чтобы просмотреть его.
person Charlie Seligman    schedule 24.02.2015
comment
«Просмотр журналов Deivce» не существует на устройстве Mac, так как же просмотреть журналы сбоев приложений OSX с помощью символа? - person OpenThread; 09.03.2015