Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Kit de Certificação de Aplicativos Windows contém vários testes que ajudam a garantir que seu aplicativo esteja pronto para ser publicado na Microsoft Store. Os testes estão listados abaixo com seus critérios, detalhes e ações sugeridas em caso de reprovação.
Testes de implantação e lançamento
Monitora o aplicativo durante os testes de certificação para registrar quando ele falha ou trava.
Contexto geral
Os aplicativos que param de responder ou falham podem fazer com que o usuário perca dados e tenha uma experiência ruim.
Esperamos que os aplicativos sejam totalmente funcionais sem o uso de modos de compatibilidade do Windows, mensagens AppHelp ou correções de compatibilidade.
Os aplicativos não devem listar DLLs para carregar na chave do Registro HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-DLLs.
Detalhes do teste
Testamos a resiliência e a estabilidade do aplicativo durante os testes de certificação.
O Kit de Certificação de Aplicativos Windows chama IApplicationActivationManager::ActivateApplication para iniciar aplicativos. Para que ActivateApplication inicie uma aplicação, o Controlo de Conta de Utilizador (UAC) deve estar activado e a resolução do ecrã deve ser de pelo menos 1024 x 768 ou 768 x 1024. Se qualquer uma das condições não for atendida, seu aplicativo será reprovado neste teste.
Medidas corretivas
Verifique se o UAC está habilitado no computador de teste.
Certifique-se de que está a executar o teste num computador com ecrã suficientemente grande.
Se seu aplicativo falhar ao iniciar e sua plataforma de teste atender aos pré-requisitos de ActivateApplication, você poderá solucionar o problema revisando o log de eventos de ativação. Para localizar estas entradas no registo de eventos:
- Abra o eventvwr.exe e navegue até a pasta Application and Services Log\Microsoft\Windows\Immersive-Shell.
- Filtre a vista para mostrar IDs de Evento: 5900-6000.
- Analise as entradas de log para obter informações que possam explicar por que o aplicativo não foi iniciado.
Solucione o arquivo problemático, identifique e corrija o problema. Recrie e teste a aplicação. Você também pode verificar se um arquivo de despejo foi gerado na pasta de log do Kit de Certificação de Aplicativos Windows que pode ser usado para depurar seu aplicativo.
Teste de lançamento da versão da plataforma
Verifica se o aplicativo do Windows pode ser executado em uma versão futura do sistema operacional. Historicamente, esse teste tem sido aplicado apenas ao fluxo de trabalho do aplicativo da área de trabalho, mas agora está habilitado para os fluxos de trabalho da Loja e da Plataforma Universal do Windows (UWP).
Contexto geral
As informações sobre a versão do sistema operacional restringiram o uso da Microsoft Store. Isso tem sido frequentemente usado incorretamente por aplicativos para verificar a versão do sistema operacional para que o aplicativo possa fornecer aos usuários uma funcionalidade específica para uma versão do sistema operacional.
Detalhes do teste
O Kit de Certificação de Aplicativos Windows usa o HighVersionLie para detetar como o aplicativo verifica a versão do sistema operacional. Se o aplicativo falhar, ele será reprovado neste teste.
Ação corretiva
Os aplicativos devem usar as funções auxiliares da API de versão para verificar isso. Consulte a versão do sistema operativo para mais informações.
Validação do manipulador de cancelamento de tarefas em segundo plano
Isso verifica se o aplicativo tem um manipulador de cancelamento para tarefas declaradas em segundo plano. Precisa haver uma função dedicada que será chamada quando a tarefa for cancelada. Esse teste é aplicado somente para aplicativos implantados.
Contexto geral
Os aplicativos da Store podem registrar um processo que é executado em segundo plano. Por exemplo, um aplicativo de email pode executar ping em um servidor de tempos em tempos. No entanto, se o sistema operacional precisar desses recursos, ele cancelará a tarefa em segundo plano, e os aplicativos devem lidar normalmente com esse cancelamento. Os aplicativos que não têm um manipulador de cancelamento podem falhar ou não fechar quando o usuário tenta fechar o aplicativo.
Detalhes do teste
O aplicativo é iniciado, suspenso e a parte não em segundo plano do aplicativo é encerrada. Em seguida, as tarefas em segundo plano associadas a este aplicativo são canceladas. O estado do aplicativo é verificado e, se o aplicativo ainda estiver em execução, ele será reprovado neste teste.
Ação corretiva
Adicione o manipulador de cancelamento ao seu aplicativo. Para obter mais informações, consulte Dar suporte ao seu aplicativo com tarefas em segundo plano.
Contagem de aplicativos
Isso verifica se um pacote de aplicativo (.msix, .appx ou pacote de aplicativos) contém um aplicativo. Isso foi alterado no kit para ser um teste independente.
Contexto geral
Este teste foi implementado de acordo com a política da Loja.
Detalhes do teste
Para aplicativos do Windows Phone 8.1, o teste verifica se o número total de pacotes de .appx no pacote é < 512, há apenas um pacote principal no pacote e se a arquitetura do pacote principal no pacote está marcada como Arm ou neutra.
Para aplicativos do Windows 10, o teste verifica se o número de revisão na versão do pacote está definido como 0.
Ação corretiva
Verifique se o pacote e o conjunto do aplicativo atendem aos requisitos acima mencionados nos Detalhes do teste.
Teste de conformidade do manifesto do aplicativo
Teste o conteúdo do manifesto do aplicativo para verificar se o conteúdo está correto.
Contexto geral
Os aplicativos devem ter um manifesto do aplicativo formatado corretamente.
Detalhes do teste
Examina o manifesto do aplicativo para verificar se o conteúdo está correto, conforme descrito nos requisitos do pacote do aplicativo.
Extensões de arquivo e protocolos
Seu aplicativo pode declarar as extensões de arquivo às quais deseja se associar. Usado incorretamente, um aplicativo pode declarar um grande número de extensões de arquivo, a maioria das quais pode nem mesmo usar, resultando em uma má experiência do usuário. Esse teste adicionará uma verificação para limitar o número de extensões de arquivo às quais um aplicativo pode se associar.
Regra de dependência do Framework
Esse teste impõe o requisito de que os aplicativos tenham dependências apropriadas na UWP. Se houver uma dependência inadequada, esse teste falhará.
Se houver uma incompatibilidade entre a versão do sistema operacional à qual o aplicativo se aplica e as dependências da estrutura feitas, o teste falhará. O teste também falharia se o aplicativo se referisse a quaisquer versões de visualização das DLLs do framework.
Verificação da comunicação entre processos (IPC)
Este teste impõe o requisito de que os aplicativos UWP não se comuniquem fora do container de aplicação para os componentes do Ambiente de Trabalho. A comunicação entre processos destina-se apenas a aplicações carregadas lateralmente. Os aplicativos que especificam o ActivatableClassAttribute com nome igual a "DesktopApplicationPath" falharão neste teste.
Ação corretiva
Analise o manifesto do aplicativo em relação aos requisitos descritos nos requisitos do pacote do aplicativo.
Teste de recursos de segurança do Windows
Contexto geral
Alterar as proteções de segurança padrão do Windows pode colocar os clientes em maior risco.
Detalhes do teste
Testa a segurança do aplicativo executando o BinScope Binary Analyzer.
Os testes do BinScope Binary Analyzer examinam os arquivos binários do aplicativo para verificar se há práticas de codificação e criação que tornem o aplicativo menos vulnerável a ataques ou a ser usado como um vetor de ataque.
Os testes do BinScope Binary Analyzer verificam o uso correto dos seguintes recursos relacionados à segurança.
- Testes do BinScope Binary Analyzer
- Assinatura de código privada
Testes do BinScope Binary Analyzer
Os testes do BinScope Binary Analyzer examinam os arquivos binários do aplicativo para verificar se há práticas de codificação e criação que tornem o aplicativo menos vulnerável a ataques ou a ser usado como um vetor de ataque.
Os testes do BinScope Binary Analyzer verificam o uso correto desses recursos relacionados à segurança:
- AllowPartiallyTrustedCallersAttribute
- /Proteção de tratamento de exceções SafeSEH
- de Prevenção de Execução de Dados
- Randomização do layout do espaço de endereçamento
- Seção PE compartilhada de leitura/gravação
- AppContainerCheck
- ExecutávelImportsCheck
- WXCheck
AllowPartiallyTrustedCallersAttribute (PermiteChamadoresParcialmenteConfiáveis)
Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste APTCACheck
O atributo AllowPartiallyTrustedCallersAttribute (APTCA) permite o acesso a código totalmente confiável a partir de código parcialmente confiável em assemblies assinados. Quando você aplica o atributo APTCA a um assembly, chamadores parcialmente confiáveis podem acessar esse assembly durante a vida útil do assembly, o que pode comprometer a segurança.
O que fazer se o seu aplicativo falhar neste teste
Não use o atributo APTCA em assemblies nomeados fortes, a menos que o seu projeto o exija e os riscos sejam claramente compreendidos. Nos casos em que é necessário, certifique-se de que todas as APIs estão protegidas com as demandas de segurança de acesso ao código apropriadas. O APTCA não tem efeito quando o assembly faz parte de uma aplicação da Universal Windows Platform (UWP).
Comentários
Este teste é realizado somente em código gerenciado (C#, .NET, etc.).
/SafeSEH Proteção contra tratamento de exceções
Mensagem de erro do Kit de Certificação de Aplicativos Windows: SafeSEHCheck Test falhou
Um manipulador de exceção é executado quando o aplicativo encontra uma condição excecional, como um erro de divisão por zero. Como o endereço do manipulador de exceção é armazenado na pilha quando uma função é chamada, pode ficar vulnerável a um ataque de estouro de buffer se um software malicioso substituir a pilha.
O que fazer se o seu aplicativo falhar neste teste
Habilite a opção /SAFESEH no comando linker ao criar seu aplicativo. Essa opção está ativada por padrão nas configurações de versão do Visual Studio. Verifique se essa opção está habilitada nas instruções de compilação para todos os módulos executáveis em seu aplicativo.
Comentários
O teste não é executado em binários de 64 bits ou binários de chipset Arm porque eles não armazenam endereços do manipulador de exceções na pilha.
Prevenção de Execução de Dados
Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste NXCheck
Este teste verifica se um aplicativo não executa código armazenado em um segmento de dados.
O que fazer se o seu aplicativo falhar neste teste
Habilite a opção /NXCOMPAT no comando linker ao criar seu aplicativo. Essa opção está ativada por padrão nas versões do vinculador que oferecem suporte à DEP (Prevenção de Execução de Dados).
Comentários
Recomendamos que você teste seus aplicativos em uma CPU compatível com DEP e corrija quaisquer falhas que você encontrar que resultem da DEP.
Randomização do Layout do Espaço de Endereçamento
Mensagem de erro do Kit de Certificação de Aplicativos Windows: DBCheck Test falhou
A ASLR (Address Space Layout Randomization) carrega imagens executáveis em locais imprevisíveis na memória, o que torna mais difícil para o software mal-intencionado que espera que um programa seja carregado em um determinado endereço virtual operar de forma previsível. Seu aplicativo e todos os componentes que ele usa devem oferecer suporte a ASLR.
O que fazer se o seu aplicativo falhar neste teste
Habilite a opção /DYNAMICBASE no comando linker ao criar seu aplicativo. Verifique se todos os módulos que seu aplicativo usa também usam essa opção de vinculador.
Comentários
Normalmente, a ASLR não afeta o desempenho. Mas em alguns cenários há uma ligeira melhoria de desempenho em sistemas de 32 bits. É possível que o desempenho possa degradar-se em um sistema altamente congestionado que tem muitas imagens carregadas em muitos locais de memória diferentes.
Esse teste é realizado somente em aplicativos escritos em linguagens não gerenciadas, como o uso de C ou C++.
Seção PE de leitura/gravação compartilhada
Mensagem de erro do Kit de Certificação de Aplicativos Windows: SharedSectionsCheck Test falhou.
Arquivos binários com seções graváveis marcadas como compartilhadas são uma ameaça à segurança. Não crie aplicativos com seções graváveis compartilhadas, a menos que seja necessário. Use CreateFileMapping ou MapViewOfFile para criar um objeto de memória compartilhada adequadamente protegido.
O que fazer se o seu aplicativo falhar neste teste
Remova todas as seções compartilhadas do aplicativo e crie objetos de memória compartilhada chamando CreateFileMapping ou MapViewOfFile com os atributos de segurança adequados e, em seguida, recrie seu aplicativo.
Comentários
Esse teste é realizado somente em aplicativos escritos em linguagens não gerenciadas, como o uso de C ou C++.
Verificação do Contêiner de Aplicações
Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste AppContainerCheck.
O AppContainerCheck verifica se o bit do 'appcontainer' no cabeçalho PE (executável portátil) de um binário executável está definido. Os aplicativos devem ter o bit appcontainer definido em todos os arquivos .exe e em todas as DLLs não gerenciadas para serem executados corretamente.
O que fazer se o seu aplicativo falhar neste teste
Se um arquivo executável nativo falhar no teste, certifique-se de que você usou o compilador e vinculador mais recentes para criar o arquivo e que você usa o sinalizador /appcontainer no vinculador.
Se um executável gerenciado falhar no teste, certifique-se de usar o compilador e o vinculador mais recentes, como o Microsoft Visual Studio, para criar o aplicativo UWP.
Comentários
Esse teste é realizado em todos os arquivos .exe e em DLLs não gerenciadas.
VerificaçãoDeImportaçõesExecutáveis
Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste ExecutableImportsCheck.
Uma imagem executável portátil (PE) falhará neste teste se sua tabela de importação tiver sido colocada em uma seção de código executável. Isso pode ocorrer se você habilitou a mesclagem .rdata para a imagem PE definindo o sinalizador /merge do vinculador do Visual C++ como /merge:.rdata=.text.
O que fazer se o seu aplicativo falhar neste teste
Não mescle a tabela de importação em uma seção de código executável. Certifique-se de que o sinalizador /merge do vinculador do Visual C++ não está definido para mesclar a seção ".rdata" em uma seção de código.
Comentários
Este teste é executado em todos os códigos binários, exceto assemblies puramente gerenciados.
WXCheck
Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste WXCheck.
A verificação ajuda a garantir que um binário não tenha páginas mapeadas como graváveis e executáveis. Isso pode ocorrer se o binário tiver uma seção gravável e executável ou se o SectionAlignment do binário for menor que PAGE-SIZE.
O que fazer se o seu aplicativo falhar neste teste
Certifique-se de que o binário não tem uma seção gravável ou executável e que o valor SectionAlignment do binário é pelo menos igual ao seu PAGE-SIZE.
Comentários
Esse teste é realizado em todos os arquivos .exe e em DLLs nativas não gerenciadas.
Um executável pode ter uma seção gravável e executável se tiver sido construído com Editar e Continuar habilitado (/ZI). A desativação de Editar e Continuar fará com que a seção inválida não esteja presente.
PAGE-SIZE é o SectionAlignment padrão para executáveis.
Assinatura de código privada
Testa a existência de binários de assinatura de código privado dentro do pacote da aplicação.
Contexto geral
Os arquivos de assinatura de código privado devem ser mantidos privados, pois podem ser usados para fins maliciosos no caso de serem comprometidos.
Detalhes do teste
Testes para ficheiros dentro do pacote da aplicação que têm uma extensão de .pfx ou .snk que possam indicar a inclusão de chaves de assinatura privadas.
Medidas corretivas
Remova todas as chaves de assinatura de código privado (por exemplo, arquivos .pfx e .snk) do pacote.
Teste de API suportado
Teste o aplicativo para o uso de APIs não compatíveis.
Contexto geral
Os aplicativos devem usar as APIs para aplicativos UWP (Tempo de Execução do Windows ou APIs Win32 suportadas) para serem certificados para a Microsoft Store. Esse teste também identifica situações em que um binário gerenciado depende de uma função fora do perfil aprovado.
Detalhes do teste
- Verifica se cada binário dentro do pacote do aplicativo não tem uma dependência em uma API do Win32 que não é suportada para o desenvolvimento de aplicativos UWP verificando a tabela de endereços de importação do binário.
- Verifica se cada binário gerenciado dentro do pacote do aplicativo não tem uma dependência de uma função fora do perfil aprovado.
Medidas corretivas
Certifique-se de que a aplicação foi compilada na versão de lançamento e não na versão de debug.
Observação A compilação de depuração de um aplicativo falhará nesse teste, mesmo que o aplicativo use apenas APIs para aplicativos UWP.
Revise as mensagens de erro para identificar a API que o aplicativo usa que não é uma API para aplicativos UWP.
Observação Os aplicativos C++ criados em uma configuração de depuração falharão nesse teste, mesmo que a configuração use apenas APIs do SDK do Windows para aplicativos UWP. Consulte Alternativas às APIs do Windows em aplicativos UWP para obter mais informações.
Testes de desempenho
O aplicativo deve responder rapidamente à interação do usuário e aos comandos do sistema, a fim de apresentar uma experiência de usuário rápida e fluida.
As características do computador no qual o teste é realizado podem influenciar os resultados do teste. Os limites de teste de desempenho para certificação de aplicativos são definidos para que computadores de baixo consumo atendam às expectativas do cliente de uma experiência rápida e fluida. Para determinar o desempenho do seu aplicativo, recomendamos que você teste em um computador de baixo consumo de energia, como um computador baseado no processador Intel Atom com resolução de tela de 1366x768 (ou superior) e um disco rígido rotacional (em oposição a um disco rígido de estado sólido).
Geração de bytecode
Como uma otimização de desempenho para acelerar o tempo de execução do JavaScript, os arquivos JavaScript que terminam na extensão .js geram bytecode quando o aplicativo é implantado. Isso melhora significativamente os tempos de inicialização e execução contínua para operações JavaScript.
Detalhes do teste
Verifica a implantação do aplicativo para verificar se todos os arquivos .js foram convertidos em bytecode.
Ação corretiva
Se esse teste falhar, considere o seguinte ao resolver o problema:
- Verifique se o log de eventos está habilitado.
- Verifique se todos os arquivos JavaScript são sintaticamente válidos.
- Confirme se todas as versões anteriores do aplicativo foram desinstaladas.
- Exclua arquivos identificados do pacote do aplicativo.
Referências de vinculação otimizadas
Ao usar associações, WinJS.Binding.optimizeBindingReferences deve ser definido como true para otimizar o uso de memória.
Detalhes do teste
Verifique o valor de WinJS.Binding.optimizeBindingReferences.
Ação corretiva
Defina WinJS.Binding.optimizeBindingReferences como true no JavaScript do aplicativo.
Teste de recursos de manifesto da aplicação
Validação de recursos do aplicativo
O aplicativo pode não ser instalado se as cadeias de caracteres ou imagens declaradas no manifesto do aplicativo estiverem incorretas. Se o aplicativo for instalado com esses erros, o logotipo do aplicativo ou outras imagens usadas pelo aplicativo podem não ser exibidas corretamente.
Detalhes do teste
Inspeciona os recursos definidos no manifesto do aplicativo para verificar se eles estão presentes e são válidos.
Ação corretiva
Use a tabela a seguir como orientação.
| Mensagem de erro | Observações |
|---|---|
|
A imagem {image name} define os qualificadores Scale e TargetSize; Você pode definir apenas um qualificador de cada vez. |
Você pode personalizar imagens para diferentes resoluções. Na mensagem real, {nome da imagem} contém o nome da imagem com o erro. Certifique-se de que cada imagem define Scale ou TargetSize como o qualificador. |
|
A imagem {nome da imagem} falhou nas restrições de tamanho. |
Certifique-se de que todas as imagens do aplicativo respeitem as restrições de tamanho adequadas. Na mensagem real, {nome da imagem} contém o nome da imagem com o erro. |
|
A imagem {nome da imagem} está ausente do pacote. |
Falta uma imagem necessária. Na mensagem real, {nome da imagem} contém o nome da imagem que está faltando. |
|
A imagem {nome da imagem} não é um arquivo de imagem válido. |
Certifique-se de que todas as imagens do aplicativo estejam de acordo com as restrições de tipo de formato de arquivo adequadas. Na mensagem real, {nome da imagem} contém o nome da imagem que não é válido. |
|
A imagem "BadgeLogo" tem um valor ABGR {value} na posição (x, y) que não é válido. O pixel deve ser branco (##FFFFFF) ou transparente (00######) |
O logotipo do selo é uma imagem que aparece ao lado da notificação do selo para identificar o aplicativo na tela de bloqueio. Esta imagem deve ser monocromática (pode conter apenas pixels brancos e transparentes). Na mensagem real, {value} contém o valor de cor na imagem que não é válido. |
|
A imagem "BadgeLogo" tem um valor ABGR {value} na posição (x, y) que não é válido para uma imagem branca de alto contraste. O pixel deve ser (##2A2A2A) ou mais escuro, ou transparente (00######). |
O logotipo do selo é uma imagem que aparece ao lado da notificação do selo para identificar o aplicativo na tela de bloqueio. Como o logotipo do emblema aparece em fundo branco quando se encontra em alto contraste, deve ser uma versão escura do logotipo normal do emblema. Em branco de alto contraste, o logotipo do selo só pode conter pixels mais escuros do que (##2A2A2A) ou transparentes. Na mensagem real, {value} contém o valor de cor na imagem que não é válido. |
|
A imagem deve definir pelo menos uma variante sem um qualificador TargetSize. Ele deve definir um qualificador Scale ou deixar Scale e TargetSize não especificados, cujo padrão é Scale-100. |
Para saber mais, veja Design responsivo 101 para aplicativos UWP e Diretrizes para recursos de aplicativos. |
|
O pacote não tem o ficheiro "resources.pri". |
Se tiver conteúdo localizável no manifesto da aplicação, certifique-se de que o pacote da aplicação inclui um ficheiro resources.pri válido. |
|
O arquivo "resources.pri" deve conter um mapa de recursos com um nome que corresponda ao nome do pacote {nome completo do pacote} |
Você pode obter este erro se o manifesto tiver sido alterado e o nome do mapa de recursos dentro do resources.pri já não corresponder ao nome do pacote no manifesto. Na mensagem real, {nome completo do pacote} contém o nome do pacote que resources.pri deve conter. Para corrigir isso, você precisa reconstruir resources.pri e a maneira mais fácil de fazer isso é reconstruindo o pacote do aplicativo. |
|
O arquivo "resources.pri" não deve ter AutoMerge habilitado. |
MakePRI.exe suporta uma opção chamada AutoMerge . O valor padrão de AutoMerge está desativado. Quando habilitado, o AutoMerge mescla os recursos do pacote de idiomas de um aplicativo em um único resources.pri em tempo de execução. Não recomendamos isso para aplicativos que você pretende distribuir pela Microsoft Store. O resources.pri de um aplicativo distribuído pela Microsoft Store deve estar na raiz do pacote do aplicativo e conter todas as referências de idioma suportadas pelo aplicativo. |
|
A string {string} falhou na restrição de comprimento máximo de {number} caracteres. |
Consulte os requisitos do pacote do aplicativo . Na mensagem real, {string} é substituído pela string com o erro e {number} contém o comprimento máximo. |
|
A string {string} não deve ter espaço em branco no início ou no final. |
O esquema para os elementos no manifesto do aplicativo não permite caracteres de espaço em branco à esquerda ou à direita. Na mensagem real, {string} é substituído pela string com o erro. Certifique-se de que nenhum dos valores localizados dos campos de manifesto em resources.pri tenha caracteres de espaço em branco à esquerda ou à direita. |
|
A cadeia de caracteres deve ser não-vazia (maior que zero em comprimento) |
Para saber mais, veja Requisitos do pacote do aplicativo. |
|
Não há nenhum recurso padrão especificado no arquivo "resources.pri". |
Para saber mais, veja Diretrizes para recursos do aplicativo. Na configuração de compilação padrão, o Visual Studio só inclui recursos de imagem de escala-200 no pacote do aplicativo ao gerar bundles, colocando outros recursos no pacote de recursos. Certifique-se de incluir recursos de imagem em escala 200 ou configurar seu projeto para incluir os recursos que você tem. |
|
Não há nenhum valor de recurso especificado no arquivo "resources.pri". |
Verifique se o manifesto do aplicativo tem recursos válidos definidos em resources.pri. |
|
O arquivo de imagem {filename} deve ser menor que 204800 bytes.\*\* |
Reduza o tamanho das imagens indicadas. |
|
O arquivo {filename} não deve conter uma seção de mapa inverso.\*\* |
Enquanto o mapa reverso é gerado durante a depuração 'F5' do Visual Studio ao invocar makepri.exe, pode ser removido executando makepri.exe sem o parâmetro /m ao gerar um arquivo pri. |
|
\*\* Indica que um teste foi adicionado no Kit de Certificação de Aplicativos Windows 3.3 para Windows 8.1 e só é aplicável ao usar essa versão do kit ou posterior. | |
Validação de marca
Espera-se que os aplicativos UWP sejam completos e totalmente funcionais. Os aplicativos que usam as imagens padrão (de modelos ou exemplos de SDK) apresentam uma experiência de usuário ruim e não podem ser facilmente identificados no catálogo da loja.
Detalhes do teste
O teste validará se as imagens usadas pelo aplicativo não forem imagens padrão de exemplos do SDK ou do Visual Studio.
Medidas corretivas
Substitua as imagens padrão por algo mais distinto e representativo do seu aplicativo.
Teste de configuração de depuração
Teste o aplicativo para certificar-se de que não é uma compilação de depuração.
Contexto geral
Para serem certificados para a Microsoft Store, os aplicativos não devem ser compilados para depuração e não devem fazer referência a versões de depuração de um arquivo executável. Além disso, deves criar o teu código de forma otimizada para que o teu aplicativo passe neste teste.
Detalhes do teste
Teste o aplicativo para certificar-se de que ele não é uma compilação de depuração e não está vinculado a nenhuma estrutura de depuração.
Medidas corretivas
- Crie o aplicativo como uma compilação de versão antes de enviá-lo para a Microsoft Store.
- Verifique se você tem a versão correta do .NET Framework instalada.
- Certifique-se de que a aplicação não está a vincular a versões de depuração de uma plataforma e que está a ser compilada com uma versão de lançamento. Se este aplicativo contiver componentes .NET, certifique-se de ter instalado a versão correta do .NET framework.
Teste de codificação de arquivos
Codificação de ficheiros UTF-8
Contexto geral
Os arquivos HTML, CSS e JavaScript devem ser codificados no formato UTF-8 com a correspondente marca de ordem de bytes (BOM) para beneficiar do caching de bytecode e evitar certos erros em tempo de execução.
Detalhes do teste
Teste o conteúdo dos pacotes de aplicativos para verificar se eles usam a codificação de arquivo correta.
Ação corretiva
Abra o arquivo afetado e selecione Salvar como no menu Arquivo no Visual Studio. Selecione o controle suspenso ao lado do botão Salvar e selecione Salvar com codificação. Na caixa de diálogo de opções de salvamento avançadas
Teste de nível de funcionalidade Direct3D
Suporte ao nível de funcionalidades do Direct3D
Testa as aplicações Microsoft Direct3D para garantir que não falham em dispositivos com hardware gráfico mais antigo.
Contexto geral
A Microsoft Store exige que todos os aplicativos que usam Direct3D sejam renderizados corretamente ou falhem de forma controlada em placas gráficas de nível de funcionalidade 9-1.
Como os usuários podem alterar o hardware gráfico em seus dispositivos após a instalação do aplicativo, se você escolher um nível mínimo de recurso superior a 9-1, seu aplicativo deverá detetar na inicialização se o hardware atual atende ou não aos requisitos mínimos. Se os requisitos mínimos não forem atendidos, o aplicativo deverá exibir uma mensagem para o usuário detalhando os requisitos do Direct3D. Além disso, se um aplicativo for baixado em um dispositivo com o qual não é compatível, ele deve detetar isso na inicialização e exibir uma mensagem para o cliente detalhando os requisitos.
Detalhes do teste
O teste validará se os aplicativos renderizam com precisão no nível de recurso 9-1.
Ação corretiva
Certifique-se de que seu aplicativo seja renderizado corretamente no nível de recurso 9-1 do Direct3D, mesmo que você espere que ele seja executado em um nível de recurso mais alto. Consulte Desenvolver para diferentes níveis de funcionalidade do Direct3D para obter mais informações.
Otimização do Direct3D após suspensão
Observação Este teste aplica-se apenas a aplicações UWP desenvolvidas para Windows 8.1 e posteriores.
Contexto geral
Se o aplicativo não chamar Trim em seu dispositivo Direct3D, o aplicativo não liberará memória alocada para seu trabalho 3D anterior. Isso aumenta o risco de os aplicativos serem encerrados devido à pressão da memória do sistema.
Detalhes do teste
Verifica a conformidade das aplicações com os requisitos d3d e garante que as aplicações chamem uma nova API Trim quando ocorrer o retorno de chamada de suspensão.
Ação corretiva
O aplicativo deve chamar a API Trim em sua interface IDXGIDevice3 sempre que estiver prestes a ser suspenso.
Teste de recursos do aplicativo
Capacidades de utilização especial
Contexto geral
As capacidades de utilização especial destinam-se a cenários muito específicos. Apenas contas de empresas têm permissão para usar esses recursos.
Detalhes do teste
Valide se o aplicativo está declarando qualquer um dos recursos abaixo:
- Autenticação Empresarial
- CertificadosDeUtilizadorPartilhados
- Biblioteca de Documentos
Se algum desses recursos for declarado, o teste exibirá um aviso para o usuário.
Ações corretivas
Considere remover o recurso de uso especial se seu aplicativo não exigir. Além disso, o uso desses recursos está sujeito a uma revisão adicional da política de integração.
Validação de metadados do Windows Runtime
Contexto geral
Garante que os componentes fornecidos em um aplicativo estejam em conformidade com o sistema do tipo Tempo de Execução do Windows.
Detalhes do teste
Verifica se os arquivos .winmd no pacote estão em conformidade com as regras do Tempo de Execução do Windows.
Ações corretivas
- ExclusivoPara teste de atributo: Certifique-se de que as classes Windows Runtime não implementem interfaces que estão marcadas como ExclusiveTo de outra classe.
- Teste de localização do tipo: Verifique se os metadados de todos os tipos do Runtime do Windows estão localizados no ficheiro winmd que possui o nome de namespace mais longo correspondente no pacote da aplicação.
- Teste de sensibilidade a maiúsculas e minúsculas do nome do tipo: Certifique-se de que todos os tipos do Windows Runtime tenham nomes exclusivos e que sejam insensíveis a maiúsculas e minúsculas no pacote da sua aplicação. Certifique-se também de que nenhum nome de tipo UWP também seja usado como um nome de namespace no pacote do aplicativo.
- Teste de correção do nome do tipo: Verifique se não há tipos do Tempo de Execução do Windows no namespace global ou no namespace de nível superior do Windows.
- Teste geral de correção de metadados: Verifique se o compilador que você está usando para gerar seus tipos está atualizado com as especificações do Tempo de Execução do Windows.
- Teste de propriedades: verifique se todas as propriedades em uma classe do Tempo de Execução do Windows têm um método get (definir métodos é opcional). Verifique se o tipo do valor de retorno do método get corresponde ao tipo do parâmetro de entrada do método set para todas as propriedades nos tipos do Tempo de Execução do Windows.
Testes de sanidade de pacotes
Teste de ficheiros adequados para a plataforma
Os aplicativos que instalam binários mistos podem falhar ou não ser executados corretamente, dependendo da arquitetura do processador do usuário.
Contexto geral
Este teste valida os binários em um pacote de aplicativo para conflitos de arquitetura. Um pacote de aplicativo não deve incluir binários que não possam ser usados na arquitetura do processador especificada no manifesto. A inclusão de binários sem suporte pode levar a uma falha no aplicativo ou a um aumento desnecessário no tamanho do pacote do aplicativo.
Detalhes do teste
Valida que o "bitness" de cada ficheiro no cabeçalho do executável PE é apropriado quando comparado com a declaração de arquitetura do processador no pacote da aplicação.
Ação corretiva
Siga estas diretrizes para garantir que o pacote do aplicativo contenha apenas arquivos suportados pela arquitetura especificada no manifesto do aplicativo:
Se a arquitetura do processador de destino do seu aplicativo for Tipo de processador neutro, o pacote do aplicativo não poderá conter arquivos binários ou de tipo de imagem x86, x64 ou Arm.
Se a arquitetura do processador de destino do seu aplicativo for do tipo de processador x86, o pacote do aplicativo deverá conter apenas arquivos binários x86 ou do tipo imagem. Se o pacote contiver tipos binários ou de imagem x64 ou Arm, ele será reprovado no teste.
Se a arquitetura do processador de destino do seu aplicativo for do tipo de processador x64, o pacote do aplicativo deverá conter arquivos binários ou de tipo de imagem x64. Observe que, neste caso, o pacote também pode incluir arquivos x86, mas a experiência principal do aplicativo deve utilizar o binário x64.
No entanto, se o pacote contiver arquivos binários ou de tipo de imagem Arm, ou contiver apenas binários x86 ou arquivos de tipo de imagem, ele falhará no teste.
Se a arquitetura do processador de destino do seu aplicativo for do tipo de processador Arm, o pacote do aplicativo deverá conter apenas arquivos binários ou de tipo de imagem Arm. Se o pacote contiver arquivos binários ou de tipo de imagem x64 ou x86, ele será reprovado no teste.
Teste da estrutura de diretórios suportada
Valida que os aplicativos não estão criando subdiretórios como parte da instalação que são mais longos do que MAX-PATH.
Contexto geral
Os componentes do sistema operacional (incluindo Trident, WWAHost, etc.) são limitados internamente a MAX-PATH para caminhos do sistema de arquivos e não funcionarão corretamente para caminhos mais longos.
Detalhes do teste
Verifica se nenhum caminho dentro do diretório de instalação do aplicativo excede MAX-PATH.
Ação corretiva
Use uma estrutura de diretórios mais curta e/ou um nome de arquivo.
Teste de Utilização de Recursos
Teste de tarefa em segundo plano WinJS
O teste de tarefa em segundo plano WinJS garante que os aplicativos JavaScript tenham as instruções de fechamento adequadas para que os aplicativos não consumam bateria.
Contexto geral
Os aplicativos que têm tarefas em segundo plano JavaScript precisam chamar Close() como a última instrução em sua tarefa em segundo plano. Os aplicativos que não fazem isso podem impedir que o sistema retorne ao modo de espera conectado e resultar no esgotamento da bateria.
Detalhes do teste
Se o aplicativo não tiver um arquivo de tarefa em segundo plano especificado no manifesto, o teste será aprovado. Caso contrário, o teste analisará o arquivo de tarefa em segundo plano JavaScript especificado no pacote do aplicativo e procurará uma instrução Close(). Se encontrado, o teste será aprovado; caso contrário, o teste falhará.
Ação corretiva
Atualize o código JavaScript em segundo plano para chamar Close() corretamente.
Tópicos relacionados
- Testes do aplicativo Windows Desktop Bridge
- Políticas da Microsoft Store