Символика iOS

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.

Узнайте больше о сроках поддержки и альтернативных вариантах.

В отчетах о сбоях macOS, tvOS и iOS отображаются трассировки стека для всех запущенных потоков приложения на момент сбоя. Трассировки стека содержат только адреса памяти; не имена классов, методы, имена файлов или номера строк, необходимые для понимания сбоев.

Чтобы получить преобразованные адреса памяти, необходимо отправить пакет dSYM в Центр приложений, который содержит все сведения, необходимые для символики. Дополнительные сведения о символичном использовании см. в официальной документации для разработчиков Apple.

Служба сборки и распространения в Центре приложений может автоматически создать допустимый файл dSYM и исходного файла сопоставления .zip и передать этот файл в службу диагностики. Если вы используете Центр приложений для создания и автоматического распространения приложения среди конечных пользователей, вам не нужно вручную получать и отправлять файлы символов.

Несимволические сбои

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

.dSYM Поиск пакета

  1. В Xcode откройте меню Окно , а затем выберите Организатор.
  2. Перейдите на вкладку Архивы .
  3. Выберите приложение на левой боковой панели.
  4. Щелкните правой кнопкой мыши последний архив и выберите Показать в Finder.
  5. Щелкните правой .xcarchive кнопкой мыши файл в finder и выберите Пункт Показать содержимое пакета.
  6. Вы увидите папку с именем dSYMs , которая содержит ваш пакет dSYM.
  7. Создайте ZIP-файл пакета dSYM.

Если вы используете Visual Studio вместо Xcode, см. раздел Где найти файл dSYM для символики журналов сбоев iOS? чтобы найти файл dSYM.

Отправка символов

Портал Центра приложений

  1. Войдите в Центр приложений и выберите свое приложение.
  2. В меню слева перейдите в раздел Диагностика и выберите Символы.
  3. В правом верхнем углу щелкните Отправить символы и отправьте файл.
  4. После индексирования символов Центром приложений будут символизованы сбои.

React Native приложений iOS

Чтобы получить файлы символов для React Native файлов iOS, создайте ZIP-файл с пакетом dSYM на компьютере Mac и картой исходного кода JavaScript приложения. Исходная карта должна иметь имя index.ios.map. Приведенные ниже команды создадут схему исходного кода для сборок выпуска:

react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map

API Центра приложений

Процесс отправки символов через API включает в себя ряд из трех вызовов API: один для выделения места на серверной части, один для отправки файла и другой для обновления состояния отправки. Текст первого вызова API должен иметь значение symbol_typeApple.

  1. Активация POST запроса к API symbol_uploads. Этот вызов выделяет место на серверной части для файла и возвращает symbol_upload_id свойство и upload_url .
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{JSON BODY}'
  1. upload_url Используя свойство, возвращенное на первом шаге, выполните запрос с заголовком PUT : "x-ms-blob-type: BlockBlob" и укажите расположение файла на диске. Этот вызов отправляет файл в серверные учетные записи хранения. Дополнительные сведения о заголовках запросов BLOB-объектов PUT .
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. PATCH Выполните запрос к API symbol_uploads с помощью свойства, symbol_upload_id возвращенного на первом шаге. В тексте запроса укажите, нужно ли задать состояние отправки committed (успешно завершен) процесс отправки или aborted (неудачно завершено).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{ "status": "committed" }'

Примечание

API отправки символов не работает для файлов размером более 256 МБ. Используйте интерфейс командной строки Центра приложений для отправки этих файлов. Вы можете установить интерфейс командной строки Центра приложений, следуя инструкциям в репозитории CLI центра приложений.

Интерфейс командной строки Центра приложений

Вы также можете использовать интерфейс командной строки для отправки файлов символов:

appcenter crashes upload-symbols --symbol {symbol file}

Битовая кодировка

Bitcode был представлен Apple, чтобы позволить приложениям, отправленным в App Store, перекомпилироваться самой Apple и применять последнюю оптимизацию. Если биткод включен, символы, созданные для вашего приложения в Магазине, будут отличаться от символов из вашей системы сборки.

Отчеты о сбоях Центра приложений пока не полностью поддерживают символику сбоев из приложений с поддержкой bitcode. Тем временем мы рекомендуем отключить биткод. Отключение биткода значительно упрощает управление символами и в настоящее время не имеет известных недостатков для приложений iOS.

Отключение битового кода для приложения

  1. В Xcode откройте параметры проекта, щелкнув элемент верхнего уровня в навигаторе проекта.
  2. Перейдите на страницу параметров сборки
  3. Найдите элемент bitcode.
  4. В результате измените значение с Да на Нет.
  5. Перестроение приложения

С помощью этих простых действий отчеты о сбоях Центра приложений будут вести себя как обычно.

Получение символов для приложений с поддержкой bitcode

Если вы хотите, чтобы биткод был включен, можно скачать соответствующие файлы dSYM, выполнив следующие действия.

  1. Открытие организатора Xcode
  2. Выберите конкретный архив приложения, который вы отправили в iTunes Connect.
  3. Нажмите кнопку "Скачать dSYMs". На этом шаге будут вставлены файлы dSYM, скомпилированные в Bitcode, в исходный архив.
  4. Отправка символов в соответствующее приложение и версию в Центре приложений

Если организатор Xcode не предоставляет новые символы, необходимо скачать dSYM-файлы с портала iTunes Connect, выполнив следующие действия.

  1. Выбор приложения на портале iTunes Connect
  2. Выберите вкладку Действие в верхней части
  3. Выберите версию сборки приложения с отсутствующими символами.
  4. Щелкните ссылку Скачать dSYM.
  5. Отправьте скачанный файл в Центр приложений. Этот файл содержит символы, необходимые центру приложений для символики сбоев.

Устранение неполадок с символами

Если после отправки символов и отключения битового кода ваши сбои по-прежнему отображаются несимволированными, это может быть связано с тем, что отправленные dSYM-файлы не соответствуют требованиям Центра приложений. При отправке dSYM-файлов Центр приложений сопоставляет их с правильной версией приложения на основе идентификаторов UUID.

Вы можете удвоить проверка, имеют ли dSYM-файлы правильные идентификаторы UUID, с помощью средства CLI под названием dwarfdump.

  1. Найдите UUID в dSYM-файле:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. Результат должен иметь следующий вид.
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
  1. Дважды проверка, если возвращенный UUID соответствует идентификаторам UUID, отображаемым в диалоговом окне символов отладки:

Центр приложений отображает UUID необходимых символов

Игнорирование символов

Если в Центре приложений нет всех файлов символов для полной символики отчетов о сбоях, они отображаются на вкладке Несимволированные . Необходимые символы отправляются с этой страницы, если у вас есть доступ к ним.

Если вы не можете отправить символы, вы можете пометить их как Игнорируемые , выбрав строки в таблице и нажав кнопку Игнорировать версии . Эта кнопка указывает Центру приложений обработать сбои и как можно более полно символично использовать символы в файле. После завершения обработки они появятся на вкладке Аварийное завершение с частичной символией. Новые сбои, которые также зависят от тех же идентификаторов символов, помеченных как игнорируемые, будут обходить вкладку Unsymbolicated по мере их прихода и прохождения через систему.