Windows App Certification Kit: что это за инструмент и как им пользоваться

Windows App Certification Kit (WACK) — это официальная утилита проверки от Microsoft, которая запускается перед публикацией приложения в Microsoft Store и выявляет нарушения требований сертификации: неподдерживаемые API, проблемы с производительностью, ошибки манифеста пакета. Если при сборке проекта в Visual Studio вы встретили пункт «Create App Packages» с предложением запустить сертификационные тесты — речь идёт именно об этом компоненте.

Инструмент входит в состав Windows SDK и устанавливается вместе с ним, отдельно скачивать его не требуется. Разработчики сталкиваются с WACK на этапе подготовки пакета MSIX или APPX, а обычные пользователи могут заметить его процесс в диспетчере задач после установки средств разработки. Дальше разберём, зачем нужна эта проверка, как её запустить и что делать с ошибками в отчёте.

Что такое Windows App Certification Kit и зачем он нужен

Windows App Certification Kit выполняет автоматизированное тестирование приложения по набору критериев Microsoft. Цель — убедиться, что программа корректно установится, запустится и удалится на компьютерах пользователей, не будет использовать запрещённые функции и не нарушит стабильность системы. Без прохождения этих проверок пакет не пройдёт предварительную валидацию при загрузке в Partner Center.

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

  • 🔍 Проверка API — поиск вызовов функций, запрещённых для приложений из Store;
  • 📦 Валидация манифеста — корректность объявленных возможностей (capabilities) и расширений;
  • Производительность — время запуска и отзывчивость интерфейса;
  • 🛡️ Безопасность — проверка цифровой подписи и флагов компиляции.

Как установить и где находится утилита

Отдельной загрузки у Windows App Certification Kit нет — компонент ставится вместе с Windows Software Development Kit (SDK). При установке Visual Studio достаточно выбрать рабочую нагрузку разработки под Windows, и SDK подтянется автоматически вместе с инструментами сертификации.

После установки исполняемый файл обычно располагается в каталоге средств SDK. Типичный путь выглядит так:

C:\Program Files (x86)\Windows Kits\10\App Certification Kit\appcert.exe

Точный путь зависит от версии установленного SDK, поэтому при необходимости проверьте содержимое папки Windows Kits на вашем диске. Запустить утилиту можно и через графический интерфейс, и из командной строки — второй вариант удобен для автоматизации сборки.

Как запустить проверку приложения

Удобнее всего запускать тесты прямо из Visual Studio: при создании пакета приложения через мастер Проект → Store → Create App Packages в конце предлагается кнопка запуска Windows App Certification Kit. Мастер сам подставит собранный пакет и покажет результаты в окне отчёта.

Второй способ — ручной запуск через графический интерфейс утилиты. Откройте appcert.exe, выберите тип проверки (например, настольное приложение или упакованный пакет), укажите путь к файлу .msix, .appx или установленной программе и дождитесь завершения тестов. Процесс может занять заметное время, особенно на слабых машинах.

Третий вариант — командная строка, полезная в CI/CD-конвейерах:

appcert.exe test -apptype windowsapp -appxpackagepath "C:\Builds\MyApp.msix" -reportoutputpath "C:\Reports\report.html"

☑️ Подготовка к запуску WACK

Выполнено: 0 / 5
⚠️ Внимание: тесты проверяйте на релизной сборке, а не на Debug. Отладочная конфигурация почти гарантированно провалит проверки производительности и может использовать отладочные API, которые запрещены в Store.

Какие тесты выполняет комплект

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

Категория тестаЧто проверяетсяТипичная причина провала
Поддерживаемые APIОтсутствие вызовов запрещённых функций Win32Использование недокументированных или устаревших API
Манифест пакетаКорректность capabilities, расширений, ресурсовОбъявлены возможности, которые приложение не использует
Запуск и завершениеПриложение стартует и закрывается без зависанийБлокировка главного потока при старте
БезопасностьНаличие подписи, флаги защиты бинарных файловОтсутствие цифровой подписи пакета
ПроизводительностьВремя запуска, отзывчивость UIТяжёлые операции в потоке интерфейса

Обратите внимание: проверка манифеста часто завершается ошибкой из-за избыточных возможностей — например, если в манифесте заявлен доступ к микрофону или местоположению, а код приложения их не использует. Лишние декларации стоит убирать до сборки релизного пакета.

Типичные ошибки и способы их устранения

Отчёт WACK формируется в формате HTML и содержит разделы «Passed», «Failed» и «Warnings». Проваленные тесты блокируют сертификацию, предупреждения — нет, но их лучше изучить. Каждая ошибка сопровождается ссылкой на описание требования в документации Microsoft.

Наиболее частые проблемы, с которыми сталкиваются разработчики:

  • Использование запрещённых API — замените вызов на разрешённый аналог или пересмотрите архитектуру функции;
  • Отсутствие подписи пакета — подпишите пакет сертификатом, доверенным на тестовой машине;
  • Медленный запуск — отложите инициализацию тяжёлых компонентов после отрисовки первого экрана;
  • Некорректный манифест — сверьте объявленные возможности с реально используемыми функциями.
📊 С какой проблемой вы чаще всего сталкивались в WACK?
Запрещённые API
Ошибки манифеста
Провалы тестов производительности
Проблемы с подписью пакета
⚠️ Внимание: не пытайтесь «обойти» проверку API, скрывая вызовы через динамическую загрузку библиотек. При публикации в Store пакет проходит дополнительный анализ на серверах Microsoft, и такие приёмы приводят к отклонению приложения или блокировке учётной записи разработчика.

Чем WACK отличается от сертификации в Microsoft Store

Локальная проверка и сертификация на стороне магазина — не одно и то же. WACK запускается на вашей машине и ловит технические нарушения, которые можно выявить автоматически. Сертификация в Partner Center включает те же автоматические тесты плюс проверку контента, возрастных рейтингов и политик магазина.

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

Можно ли проверить классическое Win32-приложение?

Да, в графическом интерфейсе appcert.exe есть отдельный тип проверки для настольных приложений. Это полезно при упаковке классической программы в MSIX через Desktop Bridge — комплект покажет несовместимости ещё до конвертации пакета.

Часто задаваемые вопросы

Windows App Certification Kit — это вирус или системный процесс?

Нет, это легитимный компонент Windows SDK от Microsoft. Если вы не устанавливали средства разработки, а процесс появился — проверьте, не ставились ли Visual Studio или SDK вместе с другим ПО. При сомнениях проверьте цифровую подпись файла appcert.exe в его свойствах.

Нужен ли WACK обычному пользователю, а не разработчику?

Обычному пользователю инструмент не нужен: он предназначен исключительно для проверки приложений перед публикацией. Если компонент занимает место и не используется, его можно удалить вместе с Windows SDK через установщик Visual Studio или список установленных программ.

Сколько времени занимает проверка приложения?

Длительность зависит от размера пакета и производительности машины: небольшие приложения проверяются за несколько минут, крупные — заметно дольше. Прерывать процесс не стоит, иначе отчёт окажется неполным.

Что делать, если тест провален, но приложение работает нормально?

Откройте HTML-отчёт и прочитайте описание конкретного теста — там указано нарушенное требование. Работоспособность на вашей машине не отменяет нарушения: например, запрещённый API может работать сейчас, но сломаться в будущих версиях Windows, поэтому Microsoft его блокирует.

Можно ли опубликовать приложение, не проходя WACK локально?

Да, локальный запуск не обязателен — те же проверки выполнятся на серверах Microsoft при загрузке пакета. Однако при провале вы потеряете время на цикл отправки и отклонения, поэтому предварительная локальная проверка считается хорошей практикой.