Как символизировать журналы сбоев / ошибок из проекта iOS Xamarin Forms?

Мне нужно обозначить некоторые журналы сбоев, и для этого я прочитал, что мне нужны файлы .app и .dSYM вместе с файлами .crash.

Я нигде не могу найти файл .app. У меня есть файл .app.dSYM и файлы .crash, но я не могу найти файл .app.

Я также могу видеть свои журналы ошибок в Xcode Organizer. Но строки из моего приложения не обозначены символами. И если я нажму на стрелку, чтобы открыть проект, я не знаю, какой файл открыть.

Спасибо


person Dpedrinha    schedule 25.07.2016    source источник


Ответы (1)


При сборке проекта iOS у вас должен быть файл .app в каталоге bin/iPhone/Release. Или, если у вас есть файл .ipa, вы можете извлечь из него .app с помощью. Вы можете переименовать файл в .zip и извлечь. .app будет в папке Payload. В Windows это может немного сбивать с толку, потому что значок может выглядеть как папка или каталог. Проверьте расширение файла. На Mac он должен распознать .app и вообще не отображать расширение. Вместо этого это выглядит так:

введите описание изображения здесь

Важно: вам необходимо использовать тот же файл .app, который сгенерировал отчет о сбое. Это означает, что вам придется использовать .app из пакета, который вы установили на устройстве, которое сгенерировало отчет о сбое. Надеюсь, вы заархивировали это или где-то сохранили. Простая перестройка проекта для получения нового .app не будет соответствовать файлу .crash во время символизации и не будет работать. Если у вас нет доступа к нему, вам нужно будет опубликовать его еще раз, и на этот раз сохраните .app до тех пор, пока вы не получите .crash для анализа.

Чтобы вручную обозначить символы, у меня есть сообщение в блоге об этом здесь. Подводя итог, вот шаги:

Создать псевдоним

Откройте Терминал и запустите одну из этих команд для вашей версии Xcode:

Xcode 7.X
alias symbolicate="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"  

Это просто упрощает использование инструмента symbolicatecrash за счет псевдонима команды symbolicate, поэтому нам не нужно переходить в этот каталог для запуска команды.

Обновите каталог разработчиков

Выполните эту команду:

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

Символизировать

Снова откройте Терминал и перейдите в каталог, в который вы поместили файлы на предыдущем шаге. Запустите команду symbolicate, которую мы ранее использовали псевдонимом, с вашими файлами .crash и .app в качестве таких параметров:

symbolicate -o "symbolicatedCrash.txt" "MyAppName 2-12-14, 9-44 PM.crash" "MyAppName.app"

Это будет символизировать файл сбоя и отобразить результат в новом файле с именем «symbolicatedCrash.txt». Убедитесь, что имена файлов из моего примера исправлены так, чтобы они соответствовали вашим.

person therealjohn    schedule 26.07.2016
comment
Оно работало завораживающе. Но моего файла .app точно нет в этой папке. Но мне удалось с ipa достать. - person Dpedrinha; 26.07.2016
comment
Теперь мне нужна помощь в понимании этого журнала. В моем коде это не похоже на проблему. Выпущенное приложение некоторое время работает, но затем начинает давать сбой до завершения запуска. И я не мог найти ничего, что приводило бы к моему коду. При первом представлении приложения происходит сбой в InitializeComponent. Но я не могу просто опубликовать это здесь и попросить о помощи, так что ... есть ли у вас способ помочь мне с этим? Я получаю очень плохие отзывы в течение нескольких дней: / - person Dpedrinha; 26.07.2016
comment
Конечно! Сообщите об ошибке на странице bugzilla.xamarin.com/enter_bug.cgi?product=Forms и прикрепите любые файлы, которыми вы можете поделиться конфиденциально. Я смогу взглянуть на них позже. Прокомментируйте и дайте мне знать ссылку на ошибку. Вы можете сделать всю ошибку приватной, если хотите. - person therealjohn; 27.07.2016
comment
Где я сейчас могу найти файлы dSym? В файле xcarchive? - person testing; 27.08.2020