2016-10-06 2 views
1

symbolicatecrash застрял.iOS: symbolicatecrash застрял

Я пытался запустить его так:

symbolicatecrash -v crash.txt MYAPP 

Выполнение никогда не заканчивается. Раньше он работал в прошлом, но теперь (Xcode 7 и 8) он застрял.

Есть ли решение, пожалуйста?

ответ

1

Вот решение:

В углубленных деталях появляются здесь: (! Новое место в Xcode 8) iOS9: duplicated lines in crash reports are causing symbolicatecrash to get stuck

Быстрое решения для редактирования этого PERL скрипта:

/Applications/Xcode.app//Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

Теперь поиск defined($images{$bundlename}) и добавить next; сразу после, как это:

 if (defined($images{$bundlename})) { 
      next; 

Это все!

Некоторые ОЧЕНЬ ПОЛЕЗНЫЕ symbolication советы:

Для symbolication вам необходимо 3 файла:

  1. текстовый файл с отчетом об аварии: начиная с Incident Identifier: и заканчивая чем-то вроде 0x1974d0000 - 0x1974f3fff libxpc.dylib arm64 <ad580443238d39978d09004c210d0c18> /usr/lib/system/libxpc.dylib

  2. Папка приложения с именем MYAPP.app (Finder скрывает расширение .app). Если у вас есть и IPA приложения, распакуйте его, и он захочет папку «Полезная нагрузка».

  3. Папка dSYM, сгенерированная Xcode при компиляции.

Вы должны переименовать папку dSYM в MYAPP.app.dSYM и поместить все три файла в одну и ту же папку.

Все три должны иметь одинаковый UUID. Для того, чтобы убедиться, что вы можете использовать следующие команды (я получил gsed, запустив brew install gnu-sed):

UUID из приложения:
dwarfdump --uuid MYAPP.app/MYAPP

UUID символов:
dwarfdump --uuid MYAPP.app.dSYM

UUID спосо аварии:
cat crash.txt | grep -A 1 "Binary Images:" | gsed -r -n -e 's_.*<([0-9a-z]{8})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{4})([0-9a-z]{12}).*_\1-\2-\3-\4-\5_p' | awk '{print toupper($0)}'

Теперь, если все они совпадают с UUID, вы можете:

symbolicatecrash -v crash.txt MYAPP

Смежные вопросы