Тестирование приложений windows phone

Содержание
  1. Приложение диагностика для смартфонов с Windows Phone 7.5 и 7.8.
  2. Тесты комплекта сертификации приложений для Windows Windows App Certification Kit tests
  3. Тесты развертывания и запуска Deployment and launch tests
  4. История Background
  5. Сведения о тесте Test details
  6. Корректирующие действия Corrective actions
  7. Тест запуска версии платформы Platform Version Launch test
  8. История Background
  9. Сведения о тесте Test details
  10. Корректирующее действие Corrective action
  11. Проверка обработчика отмены фоновых задач Background tasks cancellation handler validation
  12. История Background
  13. Сведения о тесте Test details
  14. Корректирующее действие Corrective action
  15. Количество приложений App count
  16. История Background
  17. Сведения о тесте Test details
  18. Корректирующее действие Corrective action
  19. Проверка совместимости с манифестом приложения App manifest compliance test
  20. История Background
  21. Сведения о тесте Test details
  22. Корректирующее действие Corrective action
  23. Проверка средств безопасности Windows Windows Security features test
  24. История Background
  25. Сведения о тесте Test details
  26. Тесты BinScope Binary Analyzer BinScope Binary Analyzer tests
  27. AllowPartiallyTrustedCallersAttribute AllowPartiallyTrustedCallersAttribute
  28. Защита с использованием обработчика исключений /SafeSEH /SafeSEH Exception Handling Protection
  29. Предотвращение выполнения данных Data Execution Prevention
  30. Случайный выбор расположения адресного пространства Address Space Layout Randomization
  31. Общий раздел PE чтения/записи Read/Write Shared PE Section
  32. AppContainerCheck AppContainerCheck
  33. ExecutableImportsCheck ExecutableImportsCheck
  34. WXCheck WXCheck
  35. Подписывание частного кода Private Code Signing
  36. История Background
  37. Сведения о тесте Test details
  38. Корректирующие действия Corrective actions
  39. Проверка API Supported API test
  40. История Background
  41. Сведения о тесте Test details
  42. Корректирующие действия Corrective actions
  43. Тесты производительности Performance tests
  44. Формирование байт-кода Bytecode generation
  45. Сведения о тесте Test Details
  46. Корректирующее действие Corrective Action
  47. Оптимизированные привязки Optimized binding references
  48. Сведения о тесте Test Details
  49. Корректирующее действие Corrective Action
  50. Проверка ресурсов манифеста приложения App manifest resources test
  51. Проверка ресурсов приложения App resources validation
  52. Сведения о тесте Test Details
  53. Корректирующее действие Corrective Action
  54. Проверка фирменной символики Branding validation
  55. Сведения о тесте Test Details
  56. Корректирующие действия Corrective actions
  57. Тест отладочной конфигурации Debug configuration test
  58. История Background
  59. Сведения о тесте Test details
  60. Корректирующие действия Corrective actions
  61. Проверка кодировки файлов File encoding test
  62. Кодировка файла UTF-8 UTF-8 file encoding
  63. История Background
  64. Сведения о тесте Test details
  65. Корректирующее действие Corrective Action
  66. Тест уровня компонентов Direct3D Direct3D feature level test
  67. Поддержка уровня компонентов Direct3D Direct3D feature level support
  68. История Background
  69. Сведения о тесте Test Details
  70. Корректирующее действие Corrective Action
  71. Вызов API Trim Direct3D после приостановки Direct3D Trim after suspend
  72. История Background
  73. Сведения о тесте Test Details
  74. Корректирующее действие Corrective Action
  75. Проверка возможностей приложения App Capabilities test
  76. Специальные возможности Special use capabilities
  77. История Background
  78. Сведения о тесте Test Details
  79. Корректирующие действия Corrective Actions
  80. Проверка метаданных среды выполнения Windows Windows Runtime metadata validation
  81. История Background
  82. Сведения о тесте Test Details
  83. Корректирующие действия Corrective Actions
  84. Проверки работоспособности пакета Package Sanity tests
  85. Тест соответствия файлов платформе Platform appropriate files test
  86. История Background
  87. Сведения о тесте Test Details
  88. Корректирующее действие Corrective Action
  89. Тест поддерживаемой структуры каталогов Supported Directory Structure test
  90. История Background
  91. Сведения о тесте Test Details
  92. Корректирующее действие Corrective Action
  93. Тест использования ресурсов Resource Usage test
  94. Тест фоновых задач WinJS WinJS Background Task test
  95. История Background
  96. Сведения о тесте Test Details
  97. Корректирующее действие Corrective Action

Приложение диагностика для смартфонов с Windows Phone 7.5 и 7.8.

Технический уровень : Средний

Диагностический Тест устройства.

Ошибки кроются в мелочах и деталях,

На которые люди обычно обращают

Меньше всего внимания.

Случается, так что телефон по тем или иным причинам перестаёт работать нормально.

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

Предлагаю Вашему вниманию одну из них – Device Diagnostic tool .
Подробности

Запустить диагностику можно следующим образом:

Выбрав на смартфоне плитку набора абонента, набрать на клавиатуре команду ##634#

Далее у Вас появится окно Disclaimer в котором сообщается следующее:

The following tests are intended to provide a quick method of troubleshooting potential issues in the handset device. The content and results of the test are not necessarily complete or without errors and do, not substitute authorized service of your device.

By continuing to perform the tests, you agree with the above. You can also press the Back key to decline and exit app.

Note: Running this application will pause ongoing music/voice.

Что означает следующее:

Отказ от ответственности:

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

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

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

То есть тест предназначен для выявления неполадок, но не как не устранения их.

Во время тестирования будут задействованы динамики и микрофон.

Итак, если нас устраивает выше перечисленное тогда продолжим, нажимая Accept .

Первое что появляется – меню диагностики:

Состоящее из 20 пунктов, начнём по порядку:

Run all test – Запуск всех тестов на различный функционал смартфона.

ALS – датчик освещенности экрана.

Audio Loopback – Динамики и гарнитура.

Camera — Камера, в тесте две функции принять и переснять (фото не сохраняются).

Battery Status — статус батареи, вольтаж и энергопотребление смартфона на данный момент.

DTMF — режим проверки цифровой клавиатуры набора номера.

Gyroscope — гироскоп, датчик ориентации в пространстве.

Hardware button — аппаратные кнопки

Headset detection — обнаружение гарнитуры.

LCD White — отображение цветов экрана для проверки целостности пикселей.

Lights — проверка вспышки камеры.

Life timer — отображение времени в режиме разговора с момента запуска устройства.

NFC — функция ближней связей.

Power Source — Индикатор заряда батареи.

Proximity — датчик приближения.

Speaker — запуск музыки в качестве проверки динамика.

Touch — тест работы сенсора экрана multipoint touch .

Vibra — запуск вибро режима при котором вибрация будет до тез пор пока не выйдите из теста.

Теперь немного подробнее о этих тестах:

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

Выбираем Touch , дальше появляется заставка – Нарисуйте что-нибудь на белом экране, пожалуйста нажмите Done (готово) когда вы закончите.

Дальше мы рисуем на пример:

Появляется сообщение – пройден ли тест?

Вкладки Pass и fail если тест пройден выбираем Pass если нет, то Fail в конце диагностики отобразится список пройденных этапов, который поможет определить где возможная неисправность.

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

Далее можно так же выбрать по очереди один из списка.

Выйти из любого теста можно нажав клавишу .

Как правило тесты направлены на функции самого смартфона, например, такие как акселерометр, датчик приближения, Магнетометр и гироскоп относятся к геолокации смартфона, а такие как Audio Loopback , Camera , Headset detection , Speaker и Lights для проверки работы гарнитуры, камеры, динамиков и микрофонов. Так же ряд тестов – ALS , LCD White , Touch , Hardware button , DTMF на работу экрана и Battery Status , Life timer , Power Source , Vibra и NFC уже к работе аккумулятора, вибро-вызова, времени жизни и ближней связи смартфона.

После завершения диагностики, на экране смартфона в списке приложений появится Diagnostics , в дальнейшем набирать команду ##634# не придётся.

И наконец в основном меню нажав

About отображаются сведения об диагностике и телефоне.

В этой статье я использовал смартфон Nokia Lumia 800 с программным обеспечением Windows Phone 7.8 версии 1750.0823.8858.12460.

В следующей статье я надеюсь предоставить информацию по команде с сетевыми настройками смартфонов и диагностики для Windows Phone 8.1, как появится больше времени. Если остались вопросы по статье пишите постараюсь ответить.

Тесты комплекта сертификации приложений для Windows Windows App Certification Kit tests

Комплект сертификации приложений для Windows содержит ряд тестов, позволяющих убедиться, что ваше приложение готово к публикации в Microsoft Store. The Windows App Certification Kit contains a number of tests that help ensure your app is ready to be published to the Microsoft Store. Ниже перечислены тесты с условиями, сведениями и предлагаемыми действиями в случае сбоя. The tests are listed below with their criteria, details, and suggested actions in the case of failure.

Тесты развертывания и запуска Deployment and launch tests

Позволяет отслеживать работу приложения во время сертификационных испытаний, чтобы регистрировать сбои и зависания. Monitors the app during certification testing to record when it crashes or hangs.

История Background

Приложения, перестающие отвечать или завершающиеся аварийно, могут привести к потере данных пользователя и вызвать разочарование. Apps that stop responding or crash can cause the user to lose data and have a poor experience.

Приложения должны быть полностью работоспособными без использования режимов совместимости Windows, сообщений AppHelp и исправлений совместимости. We expect apps to be fully functional without the use of Windows compatibility modes, AppHelp messages, or compatibility fixes.

Приложения не должны перечислять библиотеки DLL для загрузки в раздел реестра HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-. Apps must not list DLLs to load in the HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-DLLs registry key.

Сведения о тесте Test details

Мы проверяем устойчивость и стабильность приложения с помощью сертификационного тестирования. We test the app resilience and stability throughout the certification testing.

Для запуска приложений комплект сертификации приложений для Windows вызывает метод IApplicationActivationManager::ActivateApplication. The Windows App Certification Kit calls IApplicationActivationManager::ActivateApplication to launch apps. Чтобы метод ActivateApplication запустил приложение, должен быть включен контроль учетных записей, а разрешение экрана должно быть не менее 1024×768 или 768×1024. For ActivateApplication to launch an app, User Account Control (UAC) must be enabled and the screen resolution must be at least 1024 x 768 or 768 x 1024. Если одно из этих условий не выполнено, приложение не пройдет этот тест. If either condition is not met, your app will fail this test.

Корректирующие действия Corrective actions

Убедитесь, что на тестовом компьютере включен контроль учетных записей. Make sure UAC is enabled on the test computer.

Убедитесь, что вы запускаете тест на компьютере с достаточно большим разрешением экрана. Make sure you are running the test on a computer with large enough screen.

Если ваше приложение не запускается, а тестовая платформа соответствует предварительным требованиям ActivateApplication, можно диагностировать проблему, просмотрев журнал событий активации. If your app fails to launch and your test platform satisfies the prerequisites of ActivateApplication, you can troubleshoot the problem by reviewing the activation event log. Чтобы найти эти записи в журнале событий, сделайте следующее. To find these entries in the event log:

  1. Откройте eventvwr.exe и перейдите в папку Application and Services Log\Microsoft\Windows\Immersive-Shell. Open eventvwr.exe and navigate to the Application and Services Log\Microsoft\Windows\Immersive-Shell folder.
  2. Отфильтруйте представление, чтобы показать события с идентификаторами 5900–6000. Filter the view to show Event Ids: 5900-6000.
  3. Проверьте в журнале записи, которые могут объяснить невозможность запуска приложения. Review the log entries for info that might explain why the app didn’t launch.

Устраните неполадки в проблемном файле, выявите и устраните проблему. Troubleshoot the file with the problem, identify and fix the problem. Выполните повторную сборку приложения и повторите тестирование. Rebuild and re-test the app. Проверьте, нет ли в папке журнала в установочной папке комплекта сертификации приложений для Windows файла дампа памяти, который можно использовать при отладке приложения. You can also check if a dump file was generated in the Windows App Certification Kit log folder that can be used to debug your app.

Тест запуска версии платформы Platform Version Launch test

Проверяет возможность работы приложения для Windows в будущей версии операционной системы. Checks that the Windows app can run on a future version of the OS. Этот тест ранее применялся только к рабочему процессу классических приложений, но теперь он используется для рабочего процесса Магазина и универсальной платформы Windows (UWP). This test has historically been only applied to the Desktop app workflow, but this is now enabled for the Store and Universal Windows Platform (UWP) workflows.

История Background

Использование сведений о версии операционной системы для Microsoft Store ограничено. Operating system version info has restricted usage for the Microsoft Store. Эти сведения часто неправильно использовались приложениями для проверки версии ОС и включения функций, соответствующих этой версии. This has often been incorrectly used by apps to check OS version so that the app can provide users with functionality that is specific to an OS version.

Сведения о тесте Test details

Комплект сертификации приложений для Windows использует HighVersionLie для обнаружения способа проверки версии ОС приложением. The Windows App Certification Kit uses the HighVersionLie to detect how the app checks the OS version. Если в приложении возникнет сбой, оно не пройдет этот тест. If the app crashes, it will fail this test.

Корректирующее действие Corrective action

Приложения должны использовать вспомогательные функции Version API для проверки. Apps should use Version API helper functions to check this. Дополнительные сведения см. в разделе Версия операционной системы. See Operating System Version for more information.

Проверка обработчика отмены фоновых задач Background tasks cancellation handler validation

Этот тест проверяет, содержит ли приложение обработчик отмены для объявленных фоновых задач. This verifies that the app has a cancellation handler for declared background tasks. Необходима специальная функция, которая будет вызываться при отмене задачи. There needs to be a dedicated function that will be called when the task is cancelled. Этот тест применяется только для развернутых приложений. This test is applied only for deployed apps.

История Background

Универсальные приложения Windows могут регистрировать процесс, выполняемый в фоновом режиме. Store apps can register a process that runs in the background. Например, почтовое приложение может время от времени проверять связь с сервером. For example, an email app may ping a server from time to time. Однако если эти ресурсы необходимы операционной системе, она отменит фоновую задачу, поэтому приложения должны корректно обрабатывать эту отмену. However, if the OS needs these resources, it will cancel the background task, and apps should gracefully handle this cancellation. Приложения без обработчика отмены могут зависать или не закрываться, когда пользователь пытается закрыть приложение. Apps that don’t have a cancellation handler may crash or not close when the user tries to close the app.

Сведения о тесте Test details

Приложение запускается, приостанавливается, а часть приложения, не выполняемая в фоне, завершается. The app is launched, suspended and the non-background portion of the app is terminated. Затем фоновые задачи, связанные с этим приложением, отменяются. Then the background tasks associated with this app are cancelled. Проверяется состояние приложения, и если приложение все еще выполняется, оно не пройдет этот тест. The state of the app is checked, and if the app is still running then it will fail this test.

Корректирующее действие Corrective action

Добавьте обработчик отмены в приложение. Add the cancellation handler to your app. Дополнительные сведения см. в разделе Поддержка приложения с помощью фоновых задач. For more information see Support your app with background tasks.

Количество приложений App count

Этот тест позволяет убедиться, что пакет приложения (MSIX, APPX или пакет приложений) содержит одно приложение. This verifies that an app package (.msix, .appx, or app bundle) contains one application. Теперь это автономный тест. This was changed in the kit to be a standalone test.

История Background

Тест реализован согласно политике Магазина. This test was implemented as per Store policy.

Сведения о тесте Test details

В приложениях для Windows Phone 8.1 этот тест подтверждает, что общее число пакетов приложений в наборе For Windows Phone 8.1 apps the test verifies the total number of .appx packages in the bundle is

В приложениях для Windows 10 тест подтверждает, что в версии набора задан номер редакции 0. For Windows 10 apps the test verifies that the revision number in the version of the bundle is set to 0.

Корректирующее действие Corrective action

Убедитесь, что пакет приложения и пакет соответствуют приведенным выше в «Сведениях о тесте» требованиям. Ensure the app package and bundle meet requirements above in Test details.

Проверка совместимости с манифестом приложения App manifest compliance test

Проверяет содержание манифеста приложения, чтобы убедиться в том, что оно верно. Test the contents of app manifest to make sure its contents are correct.

История Background

Приложения должны иметь правильно отформатированный манифест. Apps must have a correctly formatted app manifest.

Читайте также:  What is windows installer cleanup

Сведения о тесте Test details

Проверяет манифест приложения, чтобы подтвердить правильность его содержимого в соответствии с разделом Требования к пакетам приложений. Examines the app manifest to verify the contents are correct as described in the App package requirements.

Расширения файлов и протоколы File extensions and protocols

Приложение может объявлять расширения файлов, с которыми оно будет сопоставлено. Your app can declare the file extensions that it wants to associate with. При неправильном подходе приложение может объявить слишком большое количество расширений имен файлов, большинство из которых оно даже не сможет использовать. Used improperly, an app can declare a large number of file extensions, most of which it may not even use, resulting in a bad user experience. Этот тест проверяет, какие расширения файлов можно сопоставить с приложением, с целью ограничить их количество. This test will add a check to limit the number of file extensions that an app can associate with.

Правило зависимости платформы Framework Dependency rule

Для этого теста необходимо, чтобы приложения использовали соответствующие зависимости на UWP. This test enforces the requirement that apps take appropriate dependencies on the UWP. При ошибочной зависимости тест не будет пройден. If there is an inappropriate dependency, this test will fail.

При выявлении несоответствия между версией ОС, в которой должно выполняться приложение, и заданными в нем зависимостями платформы тест не будет пройден. If there is a mismatch between the OS version the app applies to and the framework dependencies made, the test will fail. Сбой теста произойдет и в случае, если приложение ссылается на любую из предварительных версий библиотек DLL платформы. The test would also fail if the app refers to any preview versions of the framework dlls.

Проверка межпроцессного взаимодействия Inter-process Communication (IPC) verification

Этот тест проверяет требования, по которым приложения UWP не могут передавать данные за пределы контейнера приложения компонентам компьютера. This test enforces the requirement that UWP apps do not communicate outside of the app container to Desktop components. Межпроцессное взаимодействие предназначено только для параллельно загружаемых приложений. Inter-process communication is intended for side-loaded apps only. Приложения, в которых задан атрибут ActivatableClassAttribute с именем «DesktopApplicationPath», не пройдут этот тест. Apps that specify the ActivatableClassAttribute with name equal to «DesktopApplicationPath» will fail this test.

Корректирующее действие Corrective action

Проверьте манифест приложения на соответствие требованиям, описанным в разделе Требования к пакетам приложений. Review the app’s manifest against the requirements described in the App package requirements.

Проверка средств безопасности Windows Windows Security features test

История Background

Изменение используемых по умолчанию защитных средств Windows может подвергнуть пользователей повышенному риску. Changing the default Windows security protections can put customers at increased risk.

Сведения о тесте Test details

Проверяет безопасность приложения, запуская средство BinScope Binary Analyzer. Tests the app’s security by running the BinScope Binary Analyzer.

Тесты BinScope Binary Analyzer проверяют способы программирования и сборки двоичных файлов приложения, снижающие его уязвимость перед атаками и возможность использования его в качестве вектора атаки. The BinScope Binary Analyzer tests examine the app’s binary files to check for coding and building practices that make the app less vulnerable to attack or to being used as an attack vector.

В тестах BinScope Binary Analyzer проверяется правильность использования следующих средств безопасности: The BinScope Binary Analyzer tests check for the correct use of the following security-related features.

  • Тесты BinScope Binary Analyzer BinScope Binary Analyzer tests
  • Подписывание частного кода Private Code Signing

Тесты BinScope Binary Analyzer BinScope Binary Analyzer tests

Тесты BinScope Binary Analyzer проверяют способы программирования и сборки двоичных файлов приложения, снижающие его уязвимость перед атаками и возможность использования его в качестве вектора атаки. The BinScope Binary Analyzer tests examine the app’s binary files to check for coding and building practices that make the app less vulnerable to attack or to being used as an attack vector.

В тестах BinScope Binary Analyzer проверяется правильность использования следующих средств безопасности: The BinScope Binary Analyzer tests check for the correct use of these security-related features:

AllowPartiallyTrustedCallersAttribute AllowPartiallyTrustedCallersAttribute

Сообщение об ошибке комплекта сертификации приложений для Windows: Ошибка диагностики APTCACheck Windows App Certification Kit error message: APTCACheck Test failed

Атрибут AllowPartiallyTrustedCallersAttribute (APTCA) разрешает доступ к полностью доверенному коду со стороны частично доверенного кода в подписанных сборках. The AllowPartiallyTrustedCallersAttribute (APTCA) attribute enables access to fully trusted code from partially trusted code in signed assemblies. Применяя атрибут APTCA к сборке, частично доверенные вызывающие стороны могут получать доступ к этой сборке на весь срок ее жизни, что может нанести ущерб безопасности. When you apply the APTCA attribute to an assembly, partially trusted callers can access that assembly for the life of the assembly, which can compromise security.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

Используйте атрибут APTCA для сборок со строгим именем только в том случае, если для вашего проекта это необходимо, а риски хорошо вам понятны. Don’t use the APTCA attribute on strong named assemblies unless your project requires it and the risks are well understood. Если это необходимо, убедитесь, что все API защищены соответствующими требованиями к управлению доступом для кода. In cases where it’s required, make sure that all APIs are protected with appropriate code access security demands. Атрибут APTCA не действует, если сборка входит в состав приложения на универсальной платформе Windows (UWP). APTCA has no effect when the assembly is a part of a Universal Windows Platform (UWP) app.

Замечания Remarks

Данный тест выполняется только для управляемого кода (C#, .NET и пр.). This test is performed only on managed code (C#, .NET, etc.).

Защита с использованием обработчика исключений /SafeSEH /SafeSEH Exception Handling Protection

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест SafeSEHCheck. Windows App Certification Kit error message: SafeSEHCheck Test failed

Обработчик исключений запускается, когда приложение сталкивается с исключительной ситуацией, например происходит ошибка деления на ноль. An exception handler runs when the app encounters an exceptional condition, such as a divide-by-zero error. На момент вызова функции адрес обработчика ошибок хранится в стеке, поэтому в случае перезаписи стека какой-либо вредоносной программой обработчик может стать уязвим для атак с переполнением буфера. Because the address of the exception handler is stored on the stack when a function is called, it could be vulnerable to a buffer overflow attacker if some malicious software were to overwrite the stack.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

При выполнении сборки приложения включите параметр /SAFESEH в команде компоновщика. Enable the /SAFESEH option in the linker command when you build your app. Этот параметр включен по умолчанию в конфигурациях выпуска Visual Studio. This option is on by default in the Release configurations of Visual Studio. Убедитесь, что этот параметр включен в инструкциях сборки для всех исполняемых модулей вашего приложения. Verify this option is enabled in the build instructions for all executable modules in your app.

Замечания Remarks

Тест не проводится для 64-разрядных двоичных файлов или двоичных файлов для набора микросхем ARM, так как они не хранят адресов обработчика исключений в стеке. The test is not performed on 64-bit binaries or ARM chipset binaries because they don’t store exception handler addresses on the stack.

Предотвращение выполнения данных Data Execution Prevention

Сообщение об ошибке комплекта сертификации приложений для Windows: Ошибка диагностики NXCheck Windows App Certification Kit error message: NXCheck Test failed

Данный тест позволяет убедиться, что приложение не выполняет код, хранящийся в сегменте данных. This test verifies that an app doesn’t run code that is stored in a data segment.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

При сборке приложения включите параметр /NXCOMPAT в команде компоновщика. Enable the /NXCOMPAT option in the linker command when you build your app. Этот параметр включен по умолчанию в версиях компоновщика, которые поддерживают предотвращение выполнения данных (DEP). This option is on by default in linker versions that support Data Execution Prevention (DEP).

Замечания Remarks

Рекомендуется протестировать приложения на процессоре с поддержкой DEP и устранить сбои, возникшие в результате DEP. We recommend that you test your apps on a DEP-capable CPU and fix any failures you find that result from DEP.

Случайный выбор расположения адресного пространства Address Space Layout Randomization

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест DBCheck. Windows App Certification Kit error message: DBCheck Test failed

Технология случайного выбора расположения адресного пространства (ASLR) загружает исполняемые образы в случайно выбранные области памяти. Это затрудняет работу вредоносной программы, которая ожидает, что для предсказуемой работы программы она будет загружена по определенному виртуальному адресу. Address Space Layout Randomization (ASLR) loads executable images into unpredictable locations in memory, which makes it harder for malicious software that expects a program to be loaded at a certain virtual address to operate predictably. Ваше приложение и все компоненты, которые оно использует, должны поддерживать ASLR. Your app and all components that your app uses must support ASLR.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

При сборке приложения включите параметр /DYNAMICBASE в команде компоновщика. Enable the /DYNAMICBASE option in the linker command when you build your app. Убедитесь, что все модули, используемые приложением, также используют этот параметр компоновщика. Verify that all modules that your app uses also use this linker option.

Замечания Remarks

Обычно ASLR не влияет на производительность. Normally, ASLR doesn’t affect performance. Однако в некоторых сценариях наблюдается небольшое повышение производительности на 32-разрядных системах. But in some scenarios there is a slight performance improvement on 32-bit systems. Существует вероятность снижения производительности в сильно перегруженных системах, где во множество расположений загружено множество образов. It is possible that performance could degrade in a highly congested system that have many images loaded in many different memory locations.

Этот тест выполняется только для приложений, написанных на неуправляемых языках, например C или C++. This test is performed only on apps written in unmanaged languages, such as by using C or C++.

Общий раздел PE чтения/записи Read/Write Shared PE Section

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест SharedSectionsCheck. Windows App Certification Kit error message: SharedSectionsCheck Test failed.

Двоичные файлы с записываемыми разделами, помеченными как общие, представляют угрозу безопасности. Binary files with writable sections that are marked as shared are a security threat. Без необходимости не выполняйте сборку приложений с общими записываемыми разделами. Don’t build apps with shared writable sections unless necessary. Используйте CreateFileMapping или MapViewOfFile, чтобы создать правильно защищенный объект общей памяти. Use CreateFileMapping or MapViewOfFile to create a properly secured shared memory object.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

Удалите из приложения все общие разделы и создайте объекты общей памяти, вызвав CreateFileMapping или MapViewOfFile с соответствующими атрибутами безопасности, а затем снова выполните сборку приложения. Remove any shared sections from the app and create shared memory objects by calling CreateFileMapping or MapViewOfFile with the proper security attributes and then rebuild your app.

Замечания Remarks

Этот тест выполняется только для приложений, написанных на неуправляемых языках, например C или C++. This test is performed only on apps written in unmanaged languages, such as by using C or C++.

AppContainerCheck AppContainerCheck

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест AppContainerCheck. Windows App Certification Kit error message: AppContainerCheck Test failed.

The AppContainerCheck проверяет, установлен ли бит appcontainer в заголовке переносимого исполняемого (PE) файла для исполняемого двоичного файла. The AppContainerCheck verifies that the appcontainer bit in the portable executable (PE) header of an executable binary is set. Для правильного выполнения приложений бит appcontainer должен быть установлен для всех EXE-файлов и всех неуправляемых библиотек DLL. Apps must have the appcontainer bit set on all .exe files and all unmanaged DLLs to execute properly.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

Если собственный исполняемый файл не проходит тест, убедитесь, что вы используете последнюю версию компилятора и компоновщика, а также что в компоновщике установлен флаг /appcontainer. If a native executable file fails the test, make sure that you used the latest compiler and linker to build the file and that you use the /appcontainer flag on the linker.

Если управляемый исполняемый файл не прошел тест, убедитесь, что для выполнения сборки приложения UWP вы используете последнюю версию компилятора и компоновщика, например Microsoft Visual Studio. If a managed executable fails the test, make sure that you used the latest compiler and linker, such as Microsoft Visual Studio, to build the UWP app.

Замечания Remarks

Этот тест выполняется для всех EXE-файлов и для неуправляемых библиотек DLL. This test is performed on all .exe files and on unmanaged DLLs.

ExecutableImportsCheck ExecutableImportsCheck

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест ExecutableImportsCheck. Windows App Certification Kit error message: ExecutableImportsCheck Test failed.

Образ переносимого исполняемого (PE) файла не проходит этот тест, если его таблица помещена в раздел исполняемого кода. A portable executable (PE) image fails this test if its import table has been placed in an executable code section. Это может происходить, если вы включили слияние rdata для образа PE, установив для флага /merge компоновщика Visual C++ значение /merge:.rdata=.text. This can occur if you enabled .rdata merging for the PE image by setting the /merge flag of the Visual C++ linker as /merge:.rdata=.text.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

Не выполняйте слияние таблицы импорта с разделом исполняемого кода. Don’t merge the import table into an executable code section. Убедитесь, что с помощью флага /merge компоновщика Visual C++ не установлено слияние раздела «.rdata» с разделом кода. Make sure that the /merge flag of the Visual C++ linker is not set to merge the «.rdata» section into a code section.

Замечания Remarks

Этот тест выполняется для всего двоичного кода за исключением сборок, являющихся чисто управляемыми. This test is performed on all binary code except purely managed assemblies.

WXCheck WXCheck

Сообщение об ошибке комплекта сертификации приложений для Windows: не пройден тест WXCheck. Windows App Certification Kit error message: WXCheck Test failed.

Этот тест помогает убедиться, что двоичный файл не содержит страниц, которые сопоставлены как записываемые и исполняемые. The check helps to ensure that a binary does not have any pages that are mapped as writable and executable. Это происходит, если в двоичном файле есть записываемый и исполняемый раздел или если SectionAlignment двоичного файла меньше PAGE-SIZE. This can occur if the binary has a writable and executable section or if the binary’s SectionAlignment is less than PAGE-SIZE.

Порядок действий в случае отрицательного результата теста What to do if your app fails this test

Убедитесь, что в двоичном файле нет записываемого или исполняемого раздела и что значение SectionAlignment двоичного файла как минимум равно его PAGE-SIZE. Make sure that the binary does not have a writeable or executable section and that the binary’s SectionAlignment value is at least equal to its PAGE-SIZE.

Замечания Remarks

Этот тест выполняется для всех EXE-файлов и для собственных неуправляемых библиотек DLL. This test is performed on all .exe files and on native, unmanaged DLLs.

Исполняемый файл может содержать записываемый и исполняемый раздел, если он был собран с включенным параметром «Изменить и продолжить» (/ZI). An executable may have a writable and executable section if it has been built with Edit and Continue enabled (/ZI). В результате отключения параметра «Изменить и продолжить» недействительный раздел не будет присутствовать. Disabling Edit and Continue will cause the invalid section to not be present.

PAGE-SIZE — это значение SectionAlignment по умолчанию для исполняемых файлов. PAGE-SIZE is the default SectionAlignment for executables.

Подписывание частного кода Private Code Signing

Проверяет наличие двоичных файлов для подписывания частного кода в пакете приложения. Tests for the existence of private code signing binaries within the app package.

История Background

Файлы подписывания частного кода должны оставаться недоступными, поскольку в случае несанкционированного доступа они могут использоваться злоумышленниками. Private code signing files should be kept private as they may be used for malicious purposes in the event they are compromised.

Читайте также:  Vmware folder sharing windows

Сведения о тесте Test details

Проверяет наличие в пакете приложения файлов с расширениями PFX и SNK, которые указывают на включение ключей подписывания частного кода. Tests for files within the app package that have an extension of .pfx or.snk that would indicate that private signing keys were included.

Корректирующие действия Corrective actions

Удалите из пакета все ключи подписывания частного кода (например, PFX- и SNK-файлы). Remove any private code signing keys (for example, .pfx and .snk files) from the package.

Проверка API Supported API test

Позволяет убедиться, что в приложении не используются несовместимые API. Test the app for the use of any non-compliant APIs.

История Background

Для сертификации в Microsoft Store в приложениях необходимо использовать API для приложений UWP (API среды выполнения Windows или поддерживаемые API Win32). Apps must use the APIs for UWP apps (Windows Runtime or supported Win32 APIs) to be certified for the Microsoft Store. Этот тест также позволяет выявить ситуации, в которых управляемый двоичный файл использует зависимость от функции вне утвержденного профиля. This test also identifies situations where a managed binary takes a dependency on a function outside of the approved profile.

Сведения о тесте Test details

  • Позволяют убедиться, что ни один двоичный файл в пакете приложения не использует зависимость от API Win32, который не поддерживается для разработки приложений UWP. Для этого проверяется таблица адресов импорта для двоичного файла. Verifies that each binary within the app package doesn’t have a dependency on a Win32 API that is not supported for UWP app development by checking the import address table of the binary.
  • Также позволяет убедиться, что ни один управляемый двоичный файл в пакете приложения не использует зависимость от функции вне утвержденного профиля. Verifies that each managed binary within the app package doesn’t have a dependency on a function outside of the approved profile.

Корректирующие действия Corrective actions

Убедитесь, что приложение скомпилировано в виде сборки выпуска, а не отладочной сборки. Make sure that the app was compiled as a release build and not a debug build.

Примечание. Отладочная сборка приложения не пройдет этот тест, даже если в приложении используются только API-интерфейсы для приложений UWP. Note The debug build of an app will fail this test even if the app uses only APIs for UWP apps.

Проверьте сообщения об ошибках, чтобы выявить используемый в программе API, не относящийся к API для приложений UWP. Review the error messages to identify the API the app uses that is not an API for UWP apps.

Примечание. Приложения на C++ в конфигурации отладки не пройдут этот тест, даже если в конфигурации используются только API из пакета Windows SDK для приложений UWP. Note C++ apps that are built in a debug configuration will fail this test even if the configuration only uses APIs from the Windows SDK for UWP apps. Дополнительные сведения об этом см. в статье Альтернативы API Windows в приложениях UWP. See, Alternatives to Windows APIs in UWP apps for more info.

Тесты производительности Performance tests

Приложение должно быстро реагировать на действия пользователя и системные команды, чтобы обеспечить быстрое и гибкое взаимодействие. The app must respond quickly to user interaction and system commands in order to present a fast and fluid user experience.

Характеристики компьютера, на котором выполняется тестирование, могут повлиять на результаты теста. The characteristics of the computer on which the test is performed can influence the test results. Пороговые значения в тесте производительности для сертификации приложения установлены таким образом, чтобы маломощные компьютеры удовлетворяли требованиям пользователя по быстроте и гибкости. The performance test thresholds for app certification are set such that low-power computers meet the customer’s expectation of a fast and fluid experience. Чтобы определить производительность приложения, рекомендуется проводить тестирование на маломощном компьютере, например с процессором Intel Atom, разрешением экрана 1366 x 768 (или выше) и вращающимся жестким диском (в отличие от твердотельного жесткого диска). To determine your app’s performance, we recommend that you test on a low-power computer, such as an Intel Atom processor-based computer with a screen resolution of 1366×768 (or higher) and a rotational hard drive (as opposed to a solid-state hard drive).

Формирование байт-кода Bytecode generation

Чтобы ускорить выполнение кода JavaScript для оптимизации производительности, файлы JavaScript с расширением JS генерируют байт-код во время развертывания приложения. As a performance optimization to accelerate JavaScript execution time, JavaScript files ending in the .js extension generate bytecode when the app is deployed. Это значительно сокращает время запуска и выполнения операций JavaScript. This significantly improves startup and ongoing execution times for JavaScript operations.

Сведения о тесте Test Details

Проверяет развертывание приложения с целью убедиться, что все JS-файлы преобразованы в байт-код. Checks the app deployment to verify that all .js files have been converted to bytecode.

Корректирующее действие Corrective Action

Если тест не пройден, можно попытаться решить проблему так. If this test fails, consider the following when addressing the issue:

  • Проверьте, включен ли журнал событий. Verify that event logging is enabled.
  • Убедитесь, что все файлы JavaScript не содержат синтаксических ошибок. Verify that all JavaScript files are syntactically valid.
  • Убедитесь, что все предыдущие версии приложения удалены. Confirm that all previous versions of the app are uninstalled.
  • Исключите обнаруженные файлы из пакета приложения. Exclude identified files from the app package.

Оптимизированные привязки Optimized binding references

Чтобы оптимизировать использование памяти при применении привязок, для свойства WinJS.Binding.optimizeBindingReferences необходимо установить значение true. When using bindings, WinJS.Binding.optimizeBindingReferences should be set to true in order to optimize memory usage.

Сведения о тесте Test Details

Проверьте значение свойства WinJS.Binding.optimizeBindingReferences. Verify the value of WinJS.Binding.optimizeBindingReferences.

Корректирующее действие Corrective Action

В приложениях на JavaScript задайте для свойства WinJS.Binding.optimizeBindingReferences значение true. Set WinJS.Binding.optimizeBindingReferences to true in the app JavaScript.

Проверка ресурсов манифеста приложения App manifest resources test

Проверка ресурсов приложения App resources validation

Установка приложения может завершиться ошибкой, если неверны строки или изображения, объявленные в манифесте приложения. The app might not install if the strings or images declared in your app’s manifest are incorrect. Если при установке приложения возникают такие ошибки, логотип приложения или другие изображения могут отображаться неправильно. If the app does install with these errors, your app’s logo or other images used by your app might not display correctly.

Сведения о тесте Test Details

Проверяются ресурсы, определенные в манифесте приложения, чтобы убедиться, что они имеются и действительны. Inspects the resources defined in the app manifest to make sure they are present and valid.

Корректирующее действие Corrective Action

Руководствуйтесь следующей таблицей. Use the following table as guidance.

Изображение <имя изображения>определяет квалификаторы Scale и TargetSize; единовременно можно задать только один квалификатор. The image defines both Scale and TargetSize qualifiers; you can define only one qualifier at a time.

Вы можете настроить изображения для различных разрешений. You can customize images for different resolutions.

В фактическом сообщении содержит имя изображения с ошибкой. In the actual message, contains the name of the image with the error.

Убедитесь, что каждое изображение определяет в качестве квалификатора Scale или TargetSize. Make sure that each image defines either Scale or TargetSize as the qualifier.

Изображение не соответствует ограничениям по размеру. The image failed the size restrictions.

Убедитесь, что все изображения приложения соответствуют ограничениям по размеру. Ensure that all the app images adhere to the proper size restrictions.

В фактическом сообщении содержит имя изображения с ошибкой. In the actual message, contains the name of the image with the error.

Изображение в пакете отсутствует. The image is missing from the package.

Отсутствует необходимое изображение. A required image is missing.

В фактическом сообщении содержит имя отсутствующего изображения. In the actual message, contains the name of the image that is missing.

Изображение не является действительным файлом изображения. The image is not a valid image file.

Убедитесь, что все изображения приложения соответствуют требованиям к ограничению форматов файлов. Ensure that all the app images adhere to the proper file format type restrictions.

В фактическом сообщении содержит недопустимое имя изображения. In the actual message, contains the name of the image that is not valid.

Изображение «BadgeLogo» имеет значение ABGR в положении (x, y), которое является недействительным. The image «BadgeLogo» has an ABGR value at position (x, y) that is not valid. Пиксель должен быть белым (##FFFFFF) или прозрачным (00######) The pixel must be white (##FFFFFF) or transparent (00######)

Индикатор событий (BadgeLogo) — это изображение рядом с уведомлением на индикаторе событий для идентификации приложения на экране блокировки. The badge logo is an image that appears next to the badge notification to identify the app on the lock screen. Это изображение должно быть монохромным, то есть содержать только белые и прозрачные пиксели. This image must be monochromatic (it can contain only white and transparent pixels).

В фактическом сообщении содержит недопустимое значение цвета изображения. In the actual message, contains the color value in the image that is not valid.

Изображение «BadgeLogo» имеет значение ABGR в положении (x, y), которое является недопустимым для белого изображения высокой контрастности. The image «BadgeLogo» has an ABGR value at position (x, y) that is not valid for a high-contrast white image. Пиксель должен быть цвета ##2A2A2A или темнее либо прозрачным (00######). The pixel must be (##2A2A2A) or darker, or transparent (00######).

Индикатор событий (BadgeLogo) — это изображение рядом с уведомлением на индикаторе событий для идентификации приложения на экране блокировки. The badge logo is an image that appears next to the badge notification to identify the app on the lock screen. Так как индикатор событий отображается на белом фоне, будучи белым с высокой контрастностью, то тут должна использоваться темная версия индикатора событий. Because the badge logo appears on a white background when in high-contrast white, it must be a dark version of the normal badge logo. Белое изображение индикатора событий высокой контрастности может содержать только пиксели темнее чем (##2A2A2A) или прозрачные пиксели. In high-contrast white, the badge logo can only contain pixels that are darker than (##2A2A2A) or transparent.

В фактическом сообщении содержит недопустимое значение цвета изображения. In the actual message, contains the color value in the image that is not valid.

Изображение должно определять как минимум один вариант без квалификатора TargetSize. The image must define at least one variant without a TargetSize qualifier. Оно должно определять квалификатор Scale или оставлять квалификаторы Scale и TargetSize неопределенными, что по умолчанию означает значение Scale-100. It must define a Scale qualifier or leave Scale and TargetSize unspecified, which defaults to Scale-100.

В пакете отсутствует файл resources.pri. The package is missing a «resources.pri» file.

Если в манифесте вашего приложения есть локализуемое содержимое, убедитесь, что пакет вашего приложения содержит допустимый файл resources.pri. If you have localizable content in your app manifest, make sure that your app’s package includes a valid resources.pri file.

Файл «resources.pri» должен содержать карту ресурсов с именем, которое соответствует имени пакета . The «resources.pri» file must contain a resource map with a name that matches the package name

Вы можете получить эту ошибку, если манифест изменился, а имя карты ресурсов в файле resources.pri не соответствует имени пакета в манифесте. You can get this error if the manifest changed and the name of the resource map in resources.pri no longer matches the package name in the manifest.

В фактическом сообщении содержит имя пакета, которое должно быть указано в файле resources.pri. In the actual message, contains the package name that resources.pri must contain.

Чтобы добиться этого, необходимо перестроить файл resources.pri, причем самым простым способом может стать перестройка пакета приложения. To fix this, you need to rebuild resources.pri and the easiest way to do that is by rebuilding the app’s package.

Для файла «resources.pri» нельзя включать параметр AutoMerge. The «resources.pri» file must not have AutoMerge enabled.

MakePRI.exe поддерживает параметр с названием AutoMerge. MakePRI.exe supports an option called AutoMerge. Значение AutoMerge по умолчанию — off. The default value of AutoMerge is off. Когда параметр AutoMerge включен, ресурсы языкового пакета приложения объединяются в единый файл resources.pri во время выполнения. When enabled, AutoMerge merges an app’s language pack resources into a single resources.pri at runtime. Мы не рекомендуем использовать этот параметр в приложениях, предназначенных для распространения через Microsoft Store. We don’t recommend this for apps that you intend to distribute through the Microsoft Store. Файл resources.pri приложения, распространяемого через Microsoft Store, должен находиться в корневом каталоге пакета приложения и содержать все настройки языка, поддерживаемые приложением. The resources.pri of an app that is distributed through the Microsoft Store must be in the root of the app’s package and contain all the language references that the app supports.

Строка не удовлетворяет ограничению по длине в символов. The string failed the max length restriction of characters.

В фактическом сообщении строка заменяется строкой с ошибкой, а — это максимальная длина. In the actual message, is replaced by the string with the error and contains the maximum length.

Строка не должна начинаться или заканчиваться пробелами. The string must not have leading/trailing whitespace.

Схема элементов в манифесте приложения не разрешает использование символов пробела в начале и конце строки. The schema for the elements in the app manifest don’t allow leading or trailing white space characters.

В фактическом сообщении строка заменяется строкой с ошибкой. In the actual message, is replaced by the string with the error.

Убедитесь, что локализованные значения полей манифеста в файле resources.pri не начинаются и не заканчиваются пробелами. Make sure that none of the localized values of the manifest fields in resources.pri have leading or trailing white space characters.

Строка должна быть непустой (длина больше нуля) The string must be non-empty (greater than zero in length)

Дополнительные сведения см. в разделе Требования к пакетам приложения. For more info, see App package requirements.

В файле resources.pri не указываются ресурсы по умолчанию. There is no default resource specified in the «resources.pri» file.

В конфигурации сборки по умолчанию при генерации наборов Visual Studio включает в пакет приложения только ресурсы изображений scale-200. Другие ресурсы помещаются в пакет ресурсов. In the default build configuration, Visual Studio only includes scale-200 image resources in the app package when generating bundles, putting other resources in the resource package. Вам необходимо либо включить ресурсы изображений scale-200, либо настроить проект таким образом, чтобы он включал имеющиеся ресурсы. Make sure you either include scale-200 image resources or configure your project to include the resources you have.

В файле «resources.pri» не указывается значение ресурса. There is no resource value specified in the «resources.pri» file.

Убедитесь, что манифест приложения содержит допустимые ресурсы, определенные в файле resources.pri. Make sure that the app manifest has valid resources defined in resources.pri.

Размер файла изображения должен быть меньше 204 800 байт.\*\* The image file must be smaller than 204800 bytes.\*\*

Уменьшите размер указанных изображений. Reduce the size of the indicated images.

Файл не должен содержать раздел обратного сопоставления.\*\* The file must not contain a reverse map section.\*\*

Обратное сопоставление создается в ходе «отладки F5» в Visual Studio при вызове в makepri.exe, но его можно удалить, выполнив makepri.exe без параметра /m при создании PRI-файла. While the reverse map is generated during Visual Studio ‘F5 debugging’ when calling into makepri.exe, it can be removed by running makepri.exe without the /m parameter when generating a pri file.

\*\* Показывает, что тест добавлен в комплект сертификации приложений для Windows версии 3.3 для Windows 8.1 и применяется только вместе с этой (или более поздней) версией комплекта. \*\* Indicates that a test was added in the Windows App Certification Kit 3.3 for Windows 8.1 and is only applicable when using the that version of the kit or later.

Проверка фирменной символики Branding validation

Приложения UWP должны быть завершенными и полностью работоспособными. UWP apps are expected to be complete and fully functional. Приложения, использующие изображения по умолчанию (из шаблонов или примеров SDK), непривлекательны для пользователей, и их сложно найти в каталоге Магазина. Apps using the default images (from templates or SDK samples) present a poor user experience and cannot be easily identified in the store catalog.

Сведения о тесте Test Details

Тест позволяет проверить, не использует ли приложение изображения по умолчанию — из примеров SDK или из Visual Studio. The test will validate if the images used by the app are not default images either from SDK samples or from Visual Studio.

Корректирующие действия Corrective actions

Замените изображения по умолчанию индивидуальными изображениями, отражающими суть приложения. Replace default images with something more distinct and representative of your app.

Тест отладочной конфигурации Debug configuration test

Позволяет проверить приложение, чтобы убедиться, что это не отладочная сборка. Test the app to make sure it is not a debug build.

История Background

Чтобы пройти сертификацию для Microsoft Store, приложения не должны быть скомпилированы для отладки и не должны ссылаться на отладочные версии исполняемого файла. To be certified for the Microsoft Store, apps must not be compiled for debug and they must not reference debug versions of an executable file. Для прохождения этого теста вам также необходимо создать для своего приложения собственный оптимизированный код. In addition, you must build your code as optimized for your app to pass this test.

Сведения о тесте Test details

Проверьте приложение и убедитесь, что это не отладочная сборка и что приложение не связано с отладочными платформами. Test the app to make sure it is not a debug build and is not linked to any debug frameworks.

Корректирующие действия Corrective actions

  • Выполните сборку рабочего выпуска приложения, прежде чем отправлять его в Microsoft Store. Build the app as a release build before you submit it to the Microsoft Store.
  • Убедитесь, что у вас установлена правильная версия платформы .NET Framework. Make sure that you have the correct version of .NET framework installed.
  • Убедитесь, что приложение не содержит ссылок на отладочные версии платформы, а его сборка выполняется с использованием окончательной версии. Make sure the app isn’t linking to debug versions of a framework and that it is building with a release version. Если приложение содержит компоненты .NET, убедитесь, что у вас установлена правильная версия платформы .NET Framework. If this app contains .NET components, make sure that you have installed the correct version of the .NET framework.

Проверка кодировки файлов File encoding test

Кодировка файла UTF-8 UTF-8 file encoding

История Background

Файлы HTML, CSS и JavaScript должны иметь кодировку UTF-8 с соответствующей меткой порядка следования байтов, чтобы использовать преимущества кэширования байт-кода и избежать определенных ошибок среды выполнения. HTML, CSS, and JavaScript files must be encoded in UTF-8 form with a corresponding byte-order mark (BOM) to benefit from bytecode caching and avoid certain runtime error conditions.

Сведения о тесте Test details

Позволяет проверить содержимое пакетов приложения на предмет правильности используемой кодировки файлов. Test the contents of app packages to make sure that they use the correct file encoding.

Корректирующее действие Corrective Action

Откройте файл с ошибочной кодировкой и выберите Сохранить как в меню Файл Visual Studio. Open the affected file and select Save As from the File menu in Visual Studio. Щелкните раскрывающийся список рядом с кнопкой Сохранить и выберите команду Сохранить с кодировкой. Select the drop-down control next to the Save button and select Save with Encoding. В диалоговом окне Дополнительные параметры сохранения выберите «Юникод (UTF-8, с сигнатурой)» и нажмите кнопку ОК. From the Advanced save options dialog, choose the Unicode (UTF-8 with signature) option and click OK.

Тест уровня компонентов Direct3D Direct3D feature level test

Поддержка уровня компонентов Direct3D Direct3D feature level support

Приложения Microsoft Direct3D проверяются на предмет работоспособности на устройствах с устаревшим графическим оборудованием. Tests Microsoft Direct3D apps to ensure that they won’t crash on devices with older graphics hardware.

История Background

Для всех приложений Microsoft Store, использующих Direct3D, должно выполняться правильное преобразование для просмотра или корректная обработка сбоя на графических картах уровня компонентов 9-1. Microsoft Store requires all applications using Direct3D to render properly or fail gracefully on feature level 9-1 graphics cards.

Пользователи могут менять графическое оборудование устройства после установки приложения. Если вы задаете минимальный уровень компонента выше 9-1, то во время запуска приложение должно проверять, соответствует ли текущее оборудование минимальным требованиям. Because users can change the graphics hardware in their device after the app is installed, if you choose a minimum feature level higher than 9-1, your app must detect at launch whether or not the current hardware meets the minimum requirements. Если минимальные требования не соблюдаются, приложение должно предоставлять пользователю подробные сведения о требованиях к Direct3D. If the minimum requirements are not met, the app must display a message to the user detailing the Direct3D requirements. Кроме того, если приложение загружено на устройство, не соответствующее требованиям, этот факт должен быть выявлен приложением на этапе запуска, при этом должно отобразиться сообщение для клиента с информацией о требованиях. Also, if an app is downloaded on a device with which it is not compatible, it should detect that at launch and display a message to the customer detailing the requirements.

Сведения о тесте Test Details

Этот тест проверяет, точно ли выполняется преобразование приложений для просмотра на уровне компонентов 9-1. The test will validate if the apps render accurately on feature level 9-1.

Корректирующее действие Corrective Action

Проверьте правильность преобразования приложений для просмотра на уровне компонентов 9-1 Direct3D, даже если вы планируете использовать его при более высоком уровне компонентов. Ensure that your app renders correctly on Direct3D feature level 9-1, even if you expect it to run at a higher feature level. Дополнительные сведения см. в статье Разработка для различных уровней компонентов Direct3D. See Developing for different Direct3D feature levels for more info.

Вызов API Trim Direct3D после приостановки Direct3D Trim after suspend

Примечание. Этот тест применяется только к приложениям UWP, разработанным для Windows 8.1 и более поздних версий. Note This test only applies to UWP apps developed for Windows 8.1 and later.

История Background

Если приложение не вызывает метод Trim на устройстве Direct3D, то приложение не будет освобождать память, выделенную для предыдущих трехмерных операций. If the app does not call Trim on its Direct3D device, the app will not release memory allocated for its earlier 3D work. Это повышает риск его завершения из-за нехватки системной памяти. This increases the risk of apps being terminated due to system memory pressure.

Сведения о тесте Test Details

Проверяет приложения на соответствие требованиям D3D и позволяет убедиться, что приложения вызывают новый API Trim после обратного вызова приостановки. Checks apps for compliance with d3d requirements and ensures that apps are calling a new Trim API upon their Suspend callback.

Корректирующее действие Corrective Action

Приложение должно вызывать API Trim в интерфейсе IDXGIDevice3 перед каждой приостановкой. The app should call the Trim API on its IDXGIDevice3 interface anytime it is about to be suspended.

Проверка возможностей приложения App Capabilities test

Специальные возможности Special use capabilities

История Background

Специальные возможности предназначены для особых сценариев. Special use capabilities are intended for very specific scenarios. Использовать их разрешается только учетным записям компании. Only company accounts are allowed to use these capabilities.

Сведения о тесте Test Details

Проверяет, объявляет ли приложение какие-либо из следующих возможностей: Validate if the app is declaring any of the below capabilities:

  • EnterpriseAuthentication EnterpriseAuthentication
  • SharedUserCertificates SharedUserCertificates
  • DocumentsLibrary DocumentsLibrary

Если объявлены какие-либо из этих возможностей, в результате теста выводится предупреждение для пользователя. If any of these capabilities are declared, the test will display a warning to the user.

Корректирующие действия Corrective Actions

Рекомендуется удалить специальные возможности, если они не требуются для приложения. Consider removing the special use capability if your app doesn’t require it. Кроме того, согласно политике размещения приложений использование этих возможностей дополнительно анализируется при размещении. Additionally, use of these capabilities are subject to additional on-boarding policy review.

Проверка метаданных среды выполнения Windows Windows Runtime metadata validation

История Background

Позволяет убедиться, что компоненты, предоставляемые в приложении, соответствуют системе типов универсальной платформы Windows (UWP). Ensures that the components that ship in an app conform to the UWP type system.

Сведения о тесте Test Details

Позволяет убедиться, что файлы .winmd в пакете соответствуют правилам UWP. Verifies that the .winmd files in the package conform to UWP rules.

Корректирующие действия Corrective Actions

  • Проверка атрибута ExclusiveTo: убедитесь, что классы UWP не реализуют интерфейсы, отмеченные как другой класс ExclusiveTo. ExclusiveTo attribute test: Ensure that UWP classes don’t implement interfaces that are marked as ExclusiveTo another class.
  • Проверка расположения типов: убедитесь, что метаданные для всех типов UWP находятся в WINMD-файле с самым длинным именем, соответствующим пространству имен, в пакете приложения. Type location test: Ensure that the metadata for all UWP types is located in the winmd file that has the longest namespace-matching name in the app package.
  • Проверка чувствительности к регистру имени типа: убедитесь, что все типы UWP имеют уникальные имена, учитывающие регистр, в пакете приложения. Type name case-sensitivity test: Ensure that all UWP types have unique, case-insensitive names within your app package. Также убедитесь, что ни одно имя типа UWP не используется одновременно в качестве имени пространства имен в пакете приложения. Also ensure that no UWP type name is also used as a namespace name within your app package.
  • Проверка правильности имен типов: убедитесь, что в глобальном пространстве имен или в пространстве имен Windows верхнего уровня отсутствуют типы UWP. Type name correctness test: Ensure there are no UWP types in the global namespace or in the Windows top-level namespace.
  • Проверка правильности общих метаданных: убедитесь, что компилятор, который вы применяете для создания типов среды выполнения Windows, использует последнюю версию спецификаций UWP. General metadata correctness test: Ensure that the compiler you are using to generate your types is up to date with the UWP specifications.
  • Проверка свойств: убедитесь, что все свойства в классе UWP имеют метод Get (методы Set необязательны). Properties test: ensure that all properties on a UWP class have a get method (set methods are optional). Убедитесь, что тип возвращаемого значения метода Get совпадает с типом входного параметра метода Set для всех свойств типов UWP. Ensure that the type of the get method return value matches the type of the set method input parameter, for all properties on UWP types.

Проверки работоспособности пакета Package Sanity tests

Тест соответствия файлов платформе Platform appropriate files test

Приложения, устанавливающие смешанные двоичные файлы, могут аварийно завершиться или работать неправильно в зависимости от архитектуры процессора пользователя. Apps that install mixed binaries may crash or not run correctly depending upon the user’s processor architecture.

История Background

Данный тест проверяет двоичные файлы в пакете приложения на предмет конфликтов с архитектурой. This test validates the binaries in an app package for architecture conflicts. Пакет приложения не должен включать двоичные файлы, которые нельзя использовать в системе с архитектурой процессора, указанной в манифесте. An app package should not include binaries that can’t be used on the processor architecture specified in the manifest. Это может привести к сбою приложения или излишнему увеличению размера его пакета. Including unsupported binaries can lead to your app crashing or an unnecessary increase in the app package size.

Сведения о тесте Test Details

Проверяет соответствие разрядности каждого файла в заголовке PE архитектуре процессора, объявленной в пакете приложения. Validates that each file’s «bitness» in the PE header is appropriate when cross-referenced with the app package processor architecture declaration

Корректирующее действие Corrective Action

Следуя нижеприведенным рекомендациям, вы гарантируете, что в пакет вашего приложения войдут только те файлы, которые поддерживаются архитектурой, указанной в манифесте приложения. Follow these guidelines to ensure that your app package only contains files supported by the architecture specified in the app manifest:

Если целевая архитектура процессора для приложения не зависит от типа процессора, то пакет приложения не должен включать двоичные файлы и файлы изображений типов x86, x64 и ARM. If the Target Processor Architecture for your app is Neutral processor Type, the app package cannot contain x86, x64, or ARM binary or image type files.

Если в качестве целевой архитектуры процессора для приложения выбрана архитектура x86, то пакет приложения должен включать только двоичные файлы и файлы изображений типа x86. If the Target Processor Architecture for your app is x86 processor type, the app package must only contain x86 binary or image type files. Если пакет содержит двоичные файлы или файлы изображений типов x64 или ARM, он не пройдет тестирование. If the package contains x64 or ARM binary or image types, it will fail the test.

Если в качестве целевой архитектуры процессора для приложения выбрана архитектура x64, то пакет приложения должен включать двоичные файлы и файлы изображений типа x64. If the Target Processor Architecture for your app is x64 processor type, the app package must contain x64 binary or image type files. В этом случае пакет также может включать файлы типа x86, но основные элементы взаимодействия с приложением должны использовать двоичные файлы типа x64. Note that in this case the package can also include x86 files, but the primary app experience should utilize the x64 binary.

Однако если пакет содержит двоичные файлы или файлы изображений типа ARM либо двоичные файлы или файлы изображений только типа x86, он не пройдет тестирование. However, if the package contains ARM binary or image type files, or only contains x86 binaries or image type files, it will fail the test.

Если в качестве целевой архитектуры процессора для приложения выбрана архитектура ARM, то пакет приложения должен включать только двоичные файлы и файлы изображений типа ARM. If the Target Processor Architecture for your app is ARM processor type, the app package must only contain ARM binary or image type files. Если пакет содержит двоичные файлы или файлы изображений типов x64 или x86, он не пройдет тест. If the package contains x64 or x86 binary or image type files, it will fail the test.

Тест поддерживаемой структуры каталогов Supported Directory Structure test

Позволяет убедиться, что приложения в ходе установки не создают подкаталоги, имена которых длиннее значения MAX-PATH. Validates that applications are not creating subdirectories as part of installation that are longer than MAX-PATH.

История Background

Для компонентов ОС (включая Trident, WWAHost и т. п.) накладывается внутреннее ограничение на длину путей файловой системы (не более MAX-PATH), поэтому такие компоненты не будут работать в случае превышения длины. OS components (including Trident, WWAHost, etc.) are internally limited to MAX-PATH for file system paths and will not work correctly for longer paths.

Сведения о тесте Test Details

Позволяет убедиться, что ни один из путей в установочном каталоге приложения не превышает по длине значение MAX-PATH. Verifies that no path within the app install directory exceeds MAX-PATH.

Корректирующее действие Corrective Action

Используйте более короткую структуру каталогов и более короткое имя файла. Use a shorter directory structure, and or file name.

Тест использования ресурсов Resource Usage test

Тест фоновых задач WinJS WinJS Background Task test

Тест фоновых задач WinJS позволяет убедиться, что приложения на JavaScript имеют надлежащие операторы Close и не расходуют энергию батареи. WinJS background task test ensures that JavaScript apps have the proper close statements so apps don’t consume battery.

История Background

Приложения с фоновыми задачами JavaScript должны вызывать Close() в качестве последнего оператора в фоновых задачах. Apps that have JavaScript background tasks need to call Close() as the last statement in their background task. В противном случае система может не вернуться в режим ожидания с подключением, и батарея разрядится. Apps that do not do this could keep the system from returning to connected standby mode and result in draining the battery.

Сведения о тесте Test Details

Если в манифесте приложения не указан файл фоновой задачи, тест будет пройден. If the app does not have a background task file specified in the manifest, the test will pass. В противном случае выполняется анализ файла фоновой задачи JavaScript, указанного в пакете приложения, и проверяется наличие оператора Close(). Otherwise the test will parse the JavaScript background task file that is specified in the app package, and look for a Close() statement. Если он найден, тест будет пройден; иначе — нет. If found, the test will pass; otherwise the test will fail.

Корректирующее действие Corrective Action

Измените код JavaScript фоновой задачи, задав правильный вызов оператора Close(). Update the background JavaScript code to call Close() correctly.

Читайте также:  Открыть порт брандмауэр windows 10 cmd
Оцените статью
Сообщение об ошибке Error message Комментарии Comments