Неудачные сборки

Важно!

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

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

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

Если сборка работает локально, но не в Центре приложений

Обычно эта проблема связана с незафиксированными файлами, различными инструментами или невосстановленными зависимостями. Чтобы провести проверку, можно выполнить полное клонирование проекта в новую папку посредством Git. Затем выполните компиляцию с той же конфигурацией, что и в Центре приложений, для сравнения.

  1. Откройте окно терминала или командной строки, а затем введите: mkdir appcenter-test
  2. Затем измените каталоги: cd appcenter-test
  3. Клонируйте репозиторий с помощью: git clone -b <branch> <remote_repo>
  4. Запустите недавно клонируемый проект в локальной интегрированной среде разработки или в командной строке.
  5. Попробуйте сравнить команду сборки, выполненную в Центре приложений , с командой, выполняемой локально.
  6. Сравнение версий средств, которые вы используете локально, с нашими облачными компьютерами сборки

Файлы с измененными именами файлов или расположениями игнорируются

Сборки могут игнорировать файл ключа, который был недавно перемещен или переименован. Попробуйте выбрать Сохранить или Сохранить & Сборка в конфигурации сборки. Любой из этих вариантов переиндексирует дерево репозитория и обновит определение сборки.

Известные причины — перемещение или переименование скриптов сборки & файловnuget.config.

Сравнение различных сборок в Центре приложений

Отслеживание изменений в параметрах сборки

Вы можете записать конфигурацию ветви, вызвав следующий метод API: https://openapi.appcenter.ms/#/build/branchConfigurations_get

API не позволяет напрямую записывать прошлые конфигурации. Однако эту команду можно выполнить с помощью пользовательского скрипта сборки , чтобы сборки автоматически записывайте текущую конфигурацию при выполнении.

Отслеживание изменений на компьютерах облачной сборки Центра приложений

Как и параметры сборки, вы можете проверка текущие инструменты, просмотрев этот документ: Облачные компьютеры сборки.

Однако вы можете записать, какие из этих средств доступны для конкретной сборки, выполнив следующую команду в скрипте сборки:

eval cat $HOME/systeminfo.md

Некоторые ветви работают, а другие — сбой

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

Сборки периодически завершаются сбоем

Сборка может завершиться ошибкой без изменения исходного кода или параметров сборки. Пример:

  • Различные версии восстановленных пакетов
  • Внешние службы не отвечают
  • Отдельные задачи в тайм-ауте сборки
  • И многое другое

Попробуйте проверить, является ли ошибка сборки согласованной при возникновении сбоев.

Изоляция и интерпретация сообщений об ошибках

Автоматическое выделение ошибок

Сборка Центра приложений автоматически пытается выделить распространенные сообщения об ошибках или полезные выходные данные, чтобы сделать их более заметными. Часто подсказки можно найти в первичной ошибке, в журнале до или в журнале после. Это приложение подписывается параметрами проекта & конфигурацией сборки. Поэтому jarsigner для Android регистрирует ошибку:

Снимок экрана: выделенная ошибка

jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compressed size (expected 13274 but got 13651 bytes)
##[error]Error: /usr/bin/jarsigner failed with return code: 1
##[error]Return code: 1

Более подробная информация

Если вы не нашли соответствующие сообщения об ошибках, следующим шагом является скачивание журналов сборки, что можно сделать на странице сборки main. Откройте папку с именем logs_n > Build , и вы увидите список отдельных файлов журнала, перечисленных в числовом порядке. Пример:

  • 1_Intialize job.txt
  • 2_Checkout.txt
  • 3_Tag build.txt
  • И многое другое

Журналы нумеруются на основе основных этапов сборки. Большинство сбоев сборки приводят к пропуску этапов, поэтому соответствующие журналы будут отсутствовать:

  • (Шаги 1–9)...
  • 10_Pre сборки Script.txt
  • 11_Build Xamarin.Android project.txt
  • 12_Sign APK.txt
  • Script.txt сборки 15_Post
  • Checkout.txt заданий 20_Post
  • 21_Finalize Job.txt

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

Определение коррелированных фиксаций

В пользовательском интерфейсе сборки можно просмотреть сообщение о фиксации и хэш, применимые к текущей сборке. Эту функцию можно использовать для трассировки и корреляции результатов сборки с изменениями в исходном коде.

Вы можете просмотреть сообщения о фиксации & хэши, перейдя в Appcenter.ms —> [Название организации] —> [Имя приложения] —> Сборка —> [Название ветви] —> [Номер сборки]

URL-адрес прототипа: https://appcenter.ms/orgs/[ORG-NAME]/apps/[APP-NAME]/build/branchs/[BRANCH-NAME]/builds/[BUILD-NUMBER]

Снимок экрана: хэш & фиксации из источника

В верхней части сведений о сборке вы увидите имя и сокращенный хэш фиксации. На снимке экрана:

  • Обновление Xamarin.UITest с версии 3.0.5 до 3.0.6
  • Фиксация 328ff115

Щелкнув сокращенный хэш, связанный репозиторий открывается в той же фиксации: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/commit/328ff115cb67280f7bdc70074ff605c8962470e4

Next Steps

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

Обращение в службу поддержки

Войдите в https://appcenter.ms/apps систему и щелкните значок чата в правом нижнем углу экрана. Для достижения наилучших результатов рекомендуется открыть билет с помощью:

  • Сводка ваших наблюдений
  • Подробные сведения и ссылки на ваши исследования по этому вопросу
  • URL-адреса неудачных сборок, включая важные сведения, такие как имя приложения & идентификатор сборки
  • URL-адреса передачи сборок для сравнения со сбоями (если применимо)