Symbolicate adhoc iphone app crashes

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

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

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

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

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

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

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

Приветствия.

Готье.

Ответы

Ответ 1

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

В навигаторе проекта Xcode нажмите на свой проект, а затем нажмите "Настроить параметры". При архивировании приложения Xcode по умолчанию использует конфигурацию Release. Вы хотите установить только следующие значения для конфигурации 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

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

Dan

Ответ 2

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

(a) Найдите символику (/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) Отображается отчет о сбоях с символикой

Ответ 3

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

  • Скопируйте освобожденный файл .app, который был перенесен в appstore, файл .dSYM, созданный на момент выпуска, и отчет о сбое получают из APPLE в папку FOLDER.

  • Откройте приложение терминала и перейдите в папку, созданную выше (с помощью команды CD)

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

Пример: atos -arch armv7 -o 'app name.app'/'app name' 0x0003b508

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

Спасибо