Символическое завершение работы приложения adhoc для iphone

Я не могу сделать свой код символическим ... Я прочитал часть "ниже":

Учитывая отчет о сбое, соответствующий двоичный файл и его файл .dSYM, символизировать относительно легко. В окне Xcode Organizer есть вкладка для отчетов о сбоях текущего выбранного устройства. На этой вкладке вы можете просматривать полученные извне отчеты о сбоях - просто поместите их в соответствующий каталог. Это то же самое, что и каталог Mac OS X, описанный в первом разделе. Не имеет значения, какое устройство вы подключили, но каталог, в который вы помещаете отчет о сбое, должен быть каталогом для привязанного и выбранного устройства.

Нет необходимости размещать двоичный файл и файл .dSYM в каком-либо определенном месте. Xcode использует Spotlight и UUID для поиска нужных файлов. Однако необходимо, чтобы оба файла находились в одном каталоге и чтобы этот каталог индексировался Spotlight. В любом месте вашего домашнего каталога должно быть хорошо.

Но у меня это не работает ... вот что я сделал:

  • Я открыл органайзер xcode, и у меня было устройство iphone с журналами сбоев
  • Файлы приложения и dsym находятся в моем проекте xcode, который находится на моем рабочем столе.

Все остальное должно быть автоматическим, не так ли? но журналы сбоев еще не обозначены ...

Любые комментарии приветствуются.

Ваше здоровье.

Готье.


person gotye    schedule 23.04.2010    source источник
comment
Являются ли файлы .app и .dSYM на вашем рабочем столе точными, созданными во время создания специального двоичного файла? Любое изменение, даже незначительное, может нарушить процесс символизации.   -  person Brad Larson    schedule 23.04.2010


Ответы (3)


Я боролся с этим несколько дней и наконец понял это. Мне не удалось получить символические журналы из любого заархивированного приложения, которое я установил на свой телефон. Для меня это была проблема с настройками сборки, хотя я заметил, что он смог символизировать журналы и из некоторых старых сборок после того, как я выполнил эти шаги. YMMV может отличаться в зависимости от журналов сбоев из старых сборок. Я смог получить символьные журналы после выполнения этих шагов в Xcode 4.0.1 на iOS 4.3.1.

В навигаторе проекта Xcode щелкните свой проект, а затем щелкните «Параметры сборки». Когда вы архивируете свое приложение, Xcode по умолчанию использует конфигурацию Release. Вы захотите установить следующие значения только для конфигурации Release, поэтому вам придется расширить любые настройки, которые еще не были расширены, чтобы вы могли устанавливать их для каждой конфигурации.

Убедитесь, что эти значения установлены для конфигурации выпуска:

  • Создавать символы отладки: Да
  • Формат отладочной информации: DWARF с файлом dSYM
  • Постобработка развертывания: Да
  • Удалить связанный продукт: Да
  • Использовать отдельную полосу: Да
  • Удаление символов отладки во время копирования: Нет
  • Стиль полосы: все символы

Как только они будут установлены, заархивируйте и переустановите приложение. Новые отчеты о сбоях, сгенерированные из результирующего архива, должны быть правильно обозначены символами. Для меня многие старые отчеты о сбоях также отображались правильно после выполнения этих шагов, хотя я не уверен, насколько точными были бы результаты, если бы сборки сильно отличались.

Для справки, я понял все это после изучения этой страницы: http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html.

Я также нашел эту страницу, которая удобна, если вы пытаетесь выяснить, что делает конкретная настройка сборки: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Надеюсь это поможет!

Дэн

person Dan    schedule 29.03.2011
comment
Generate Debug - Yes, Debug Info Dwarf + dSym, Strip Debug Durig Copy No, Strip Style All, по умолчанию настроены таким образом. Настройка постобработки развертывания и удаления связанного продукта на меня не повлияла. Однако использование отдельной полосы - вот что заставило его работать !!! Спасибо - person dizy; 22.07.2011

Чтобы символизировать отчет о сбое, попробуйте следующий подход:

(a) Найдите symbolicator (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash)

(b) Откройте Терминал и перетащите этот файл (чтобы путь был скопирован правильно)

(c) Запустите команду, например /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatorcrash .crash .app (укажите полный путь к отчету о сбое и файл приложения. )

(d) Появится символьный отчет о сбое.

person Vaishnavi Naidu    schedule 07.10.2010
comment
Тот же отчет о сбое, который я получаю в журналах устройства в Организаторе, я получаю с помощью вашего метода. Почему? - person Fernando Redondo; 11.03.2011
comment
для меня помогло добавление явного пути к .app; в то время как Xcode (я думаю, начиная с версии 4.2), должно быть, пропустил его - я получаю несимволические сбои для моих приложений в Xcode. - person kender; 12.04.2012
comment
@kender: как я уже упоминал, следует упомянуть весь путь как приложения, так и отчета о сбоях, меня смущает несимвольный бит отчета, какую версию Xcode вы используете? - person Vaishnavi Naidu; 12.04.2012
comment
@CodeWriter Я использую последнюю версию 4.3.2 (4E2002) - person kender; 13.04.2012

Шаги по анализу отчета о сбоях от Apple:

  1. Скопируйте файл .app выпуска, который был помещен в магазин приложений, файл .dSYM, созданный во время выпуска, и отчет о сбое, полученный от APPLE, в ПАПКУ.

  2. ОТКРОЙТЕ приложение терминала и перейдите в созданную выше папку (с помощью команды CD)

  3. atos -arch armv7 -o '(здесь ваше имя файла .app)' / '(здесь имя файла .dSYM)' (место в памяти в отчете о сбое, где произошел сбой). Ячейка памяти должна быть той, в которой произошел сбой приложения согласно отчету.

Пример: atos -arch armv7 -o 'имя приложения.app' / 'имя приложения' 0x0003b508

Это покажет вам точную строку и имя метода, которые привели к сбою.

Спасибо

person Naveen Shan    schedule 10.02.2011
comment
Это не то же самое, что символизировать весь отчет о сбое. Это дает вам соответствующий символ для одного адреса. - person Dave Cameron; 03.05.2012
comment
@DaveCameron Да, это было сделано только выше, но при использовании без адреса это позволяет вам анализировать несколько местоположений, отправляя адрес один за другим. stackoverflow.com/questions/1460892/ < / а> - person Naveen Shan; 04.05.2012