- Приложение диагностика для смартфонов с Windows Phone 7.5 и 7.8.
- Тесты комплекта сертификации приложений для Windows Windows App Certification Kit tests
- Тесты развертывания и запуска Deployment and launch tests
- История Background
- Сведения о тесте Test details
- Корректирующие действия Corrective actions
- Тест запуска версии платформы Platform Version Launch test
- История Background
- Сведения о тесте Test details
- Корректирующее действие Corrective action
- Проверка обработчика отмены фоновых задач Background tasks cancellation handler validation
- История Background
- Сведения о тесте Test details
- Корректирующее действие Corrective action
- Количество приложений App count
- История Background
- Сведения о тесте Test details
- Корректирующее действие Corrective action
- Проверка совместимости с манифестом приложения App manifest compliance test
- История Background
- Сведения о тесте Test details
- Корректирующее действие Corrective action
- Проверка средств безопасности Windows Windows Security features test
- История Background
- Сведения о тесте Test details
- Тесты BinScope Binary Analyzer BinScope Binary Analyzer tests
- AllowPartiallyTrustedCallersAttribute AllowPartiallyTrustedCallersAttribute
- Защита с использованием обработчика исключений /SafeSEH /SafeSEH Exception Handling Protection
- Предотвращение выполнения данных Data Execution Prevention
- Случайный выбор расположения адресного пространства Address Space Layout Randomization
- Общий раздел PE чтения/записи Read/Write Shared PE Section
- AppContainerCheck AppContainerCheck
- ExecutableImportsCheck ExecutableImportsCheck
- WXCheck WXCheck
- Подписывание частного кода Private Code Signing
- История Background
- Сведения о тесте Test details
- Корректирующие действия Corrective actions
- Проверка API Supported API test
- История Background
- Сведения о тесте Test details
- Корректирующие действия Corrective actions
- Тесты производительности Performance tests
- Формирование байт-кода Bytecode generation
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Оптимизированные привязки Optimized binding references
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Проверка ресурсов манифеста приложения App manifest resources test
- Проверка ресурсов приложения App resources validation
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Проверка фирменной символики Branding validation
- Сведения о тесте Test Details
- Корректирующие действия Corrective actions
- Тест отладочной конфигурации Debug configuration test
- История Background
- Сведения о тесте Test details
- Корректирующие действия Corrective actions
- Проверка кодировки файлов File encoding test
- Кодировка файла UTF-8 UTF-8 file encoding
- История Background
- Сведения о тесте Test details
- Корректирующее действие Corrective Action
- Тест уровня компонентов Direct3D Direct3D feature level test
- Поддержка уровня компонентов Direct3D Direct3D feature level support
- История Background
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Вызов API Trim Direct3D после приостановки Direct3D Trim after suspend
- История Background
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Проверка возможностей приложения App Capabilities test
- Специальные возможности Special use capabilities
- История Background
- Сведения о тесте Test Details
- Корректирующие действия Corrective Actions
- Проверка метаданных среды выполнения Windows Windows Runtime metadata validation
- История Background
- Сведения о тесте Test Details
- Корректирующие действия Corrective Actions
- Проверки работоспособности пакета Package Sanity tests
- Тест соответствия файлов платформе Platform appropriate files test
- История Background
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Тест поддерживаемой структуры каталогов Supported Directory Structure test
- История Background
- Сведения о тесте Test Details
- Корректирующее действие Corrective Action
- Тест использования ресурсов Resource Usage test
- Тест фоновых задач WinJS WinJS Background Task test
- История Background
- Сведения о тесте Test Details
- Корректирующее действие 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:
- Откройте 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.
- Отфильтруйте представление, чтобы показать события с идентификаторами 5900–6000. Filter the view to show Event Ids: 5900-6000.
- Проверьте в журнале записи, которые могут объяснить невозможность запуска приложения. 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.
Сведения о тесте 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.
Сведения о тесте 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.
Сообщение об ошибке Error message | Комментарии Comments |
---|---|