Partilhar via


Testes do aplicativo Windows Desktop Bridge

Os aplicativos do Desktop Bridge (consulte Criando um pacote MSIX a partir do seu código) são aplicativos da área de trabalho do Windows convertidos em aplicativos da Plataforma Universal do Windows (UWP) usando o Desktop Bridge . Após a conversão, o aplicativo da área de trabalho do Windows é empacotado, atendido e implantado na forma de um pacote de aplicativo UWP (um .appx ou .appxbundle) direcionado ao Windows 10 Desktop.

Testes obrigatórios versus opcionais

Os testes opcionais para aplicativos do Windows Desktop Bridge são apenas informativos e não serão usados para avaliar seu aplicativo durante a integração da Microsoft Store. Recomendamos investigar esses resultados de teste para produzir aplicativos de melhor qualidade. Os critérios gerais de aprovação/reprovação para a integração na loja são determinados pelos testes exigidos e não por esses testes opcionais.

Testes opcionais atuais

1. Teste de arquivo assinado digitalmente

Antecedentes
Este teste verifica se todos os ficheiros executáveis portáteis (PE) contêm uma assinatura válida. A presença de arquivos assinados digitalmente permite que os usuários saibam que o software é genuíno.

Detalhes do teste
O teste verifica todos os arquivos executáveis portáteis no pacote e verifica seus cabeçalhos em busca de uma assinatura. Recomenda-se que todos os ficheiros PE sejam assinados digitalmente. Um aviso será gerado se algum dos arquivos PE não estiver assinado.

Ações corretivas
Ter arquivos assinados digitalmente é sempre recomendado. Para obter mais informações, consulte Introdução à assinatura de código.

2. Verbos de associação de ficheiros

Antecedentes
Este teste verifica o registro do pacote para verificar se algum verbo de associação de arquivo está registrado.

Detalhes do teste
As aplicações de desktop convertidas podem ser aprimoradas com uma ampla variedade de APIs do Runtime do Windows. Este teste verifica se os binários UWP na aplicação não chamam APIs que não sejam do Ambiente de Execução do Windows. Os binários UWP têm o sinalizador AppContainer definido.

Ações corretivas
Consulte Desktop to UWP Bridge: App extensions para obter uma explicação sobre essas extensões e como usá-las corretamente.

3. Teste de configuração de depuração

Este teste verifica se o .msix ou .appx não é uma compilação de depuração.

Antecedentes
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, deve criar o seu código da forma mais otimizada possível para que o seu 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.

Ações 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 um framework e que está a construir 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.

4. Teste de sanidade da embalagem

4.1 Utilização de ficheiros arquivados

Antecedentes
Este teste ajuda você a criar melhores aplicativos de ponte de área de trabalho para serem executados em máquinas Windows 10 S.

Detalhes do teste
Este teste verifica todos os arquivos executáveis dentro de arquivos arquivados ou conteúdo auto-extraível. Como os arquivos executáveis contidos nesse tipo de conteúdo não são assinados durante a integração à Windows Store, o aplicativo pode não ser executado como esperado em sistemas Windows 10 S.

Ações corretivas

  • Considere avaliar os arquivos sinalizados pelo teste para determinar se há impacto no seu aplicativo em execução em um ambiente Windows 10 S.
  • Se o seu aplicativo for afetado, remova os arquivos executáveis dos arquivos arquivados e não use arquivos de extração automática para colocar arquivos executáveis no disco. Isso deve evitar a perda da funcionalidade do aplicativo.

4.2 Executáveis bloqueados

Antecedentes
Este teste ajuda-o a criar melhores aplicações Desktop Bridge para serem executadas em máquinas Windows 10 S.

Detalhes do teste
Este teste verifica se o aplicativo está tentando iniciar arquivos executáveis, o que é restrito em sistemas Windows 10 S. Os aplicativos que dependem desse recurso podem não ser executados como esperado em sistemas Windows 10 S.

Ações corretivas

  • Identifique quais das entradas sinalizadas do teste representam uma chamada para iniciar um arquivo executável que não faz parte do seu aplicativo e remova essas chamadas.
  • Se o(s) ficheiro(s) sinalizado(s) fizer parte da sua aplicação, pode ignorar o aviso.

Testes atuais necessários

1. Teste de capacidades da aplicação (capacidades de utilização especial)

Antecedentes
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.

2. Testes de recursos de manifesto do aplicativo

2.1 Validação de recursos da aplicação

Seu aplicativo pode não ser instalado corretamente 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 podem não ser exibidos corretamente.

Detalhes do teste
Inspeciona os recursos definidos no manifesto do aplicativo para verificar se eles estão presentes e são válidos.

Medidas corretivas
Use a tabela a seguir como guia.

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 um 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. Uma imagem requerida está faltando. 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 selo aparece em um fundo branco quando em branco de alto contraste, ele deve ser uma versão escura do logotipo do selo normal. 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 os guias sobre design responsivo e recursos da aplicação .
Falta um arquivo "resources.pri" no pacote. 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 no resources.pri não corresponder mais 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 App. 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ços em branco no início ou no fim. 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 obter mais informações, consulte Requisitos do pacote de aplicativos.
Não há nenhum recurso padrão especificado no arquivo "resources.pri". Para obter mais informações, consulte o guia sobre 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 pacotes, 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 ficheiro de imagem {filename} tem de ser inferior a 204800 bytes. Reduza o tamanho das imagens indicadas.
O arquivo {filename} não deve conter uma seção de mapa reverso. Enquanto o mapa reverso é gerado durante a depuração 'F5' do Visual Studio durante a chamada para makepri.exe, ele pode ser removido ao executar makepri.exe sem utilizar o parâmetro /m ao gerar um arquivo pri.

2.2 Validação da marca

Antecedentes
Espera-se que os Desktop Bridge Apps 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.

Ações corretivas
Substitua as imagens padrão por algo mais distinto e representativo do seu aplicativo.

3. Testes de conformidade do pacote

3.1 Manifesto do aplicativo

Testa o conteúdo do manifesto do aplicativo para verificar se o conteúdo está correto.

Antecedentes
Os aplicativos devem ter um manifesto do aplicativo formatado corretamente.

Detalhes do teste
Examina o manifesto da aplicação para verificar se os conteúdos estão corretos, conforme descrito nos requisitos do pacote da aplicação. Neste teste são efetuadas as seguintes verificações:

  • Extensões de arquivo e protocolos
    Seu aplicativo pode declarar os tipos de arquivo aos quais pode ser associado. Uma declaração de um grande número de tipos de arquivo incomuns torna a experiência do usuário mais pobre. Esse teste limita o número de extensões de arquivo às quais um aplicativo pode ser associado.
  • Regra de dependência do Framework
    Esse teste impõe o requisito de que os aplicativos declarem 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 que o aplicativo destina e as dependências da estrutura feitas, o teste falhará. O teste também falhará se o aplicativo se referir a quaisquer versões 'preview' das dlls do framework.
  • Verificação da comunicação entre processos (IPC)
    Este teste impõe o requisito de que os aplicativos do Desktop Bridge não se comuniquem fora do contêiner do aplicativo para os componentes da área de trabalho. A comunicação entre processos destina-se apenas a aplicações de sideload. Os aplicativos que especificam o ActivatableClassAttribute com nome igual a DesktopApplicationPath falharão neste teste.

Medidas corretivas
Analise o manifesto da aplicação em relação aos requisitos descritos nos Requisitos do pacote da aplicação.

3.2 Contagem de candidaturas

Este teste verifica se um pacote de aplicativo (.appx, pacote de aplicativos) contém um aplicativo.

Antecedentes
Este teste é implementado de acordo com a política da Loja.

Detalhes do teste
Este teste verifica se o número total de pacotes de .appx no pacote é inferior a 512 e se há apenas um pacote "principal" no pacote. Ele também verifica se o número de revisão da versão do pacote está definido como 0.

Ações corretivas
Assegure-se de que o pacote e o conjunto do aplicativo cumpram os requisitos indicados em Detalhes do teste.

3.3 Verificações do registo

Antecedentes
Este teste verifica se o aplicativo instala ou atualiza novos serviços ou drivers.

Detalhes do teste
O teste procura dentro do arquivo registry.dat atualizações para locais de registro específicos que indicam um novo serviço ou driver sendo registrado. Se o aplicativo estiver tentando instalar um driver ou serviço, o teste falhará.

Ações corretivas
Revise as falhas e remova os serviços ou drivers em questão se forem desnecessários. Se o aplicativo depender disso, você precisará revisá-lo se quiser integrar a Loja.

4. Teste de ficheiros adequados à plataforma

Os aplicativos que instalam binários mistos podem falhar ou não ser executados corretamente, dependendo da arquitetura do processador do usuário.

Antecedentes
Este teste verifica os binários em um pacote de aplicativo em busca de 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 se a arquitetura de bits de cada ficheiro no cabeçalho executável portátil é apropriada quando comparada com a declaração da arquitetura do processador do pacote da aplicação.

Ações corretivas
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. Se o pacote contiver arquivos binários ou de tipo de imagem Arm, ou apenas contiver binários x86 e arquivos de tipo de imagem, ele será reprovado 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.

5. Teste de API suportado

Verifica o uso de APIs não compatíveis no aplicativo.

Antecedentes
Os aplicativos do Desktop Bridge podem aproveitar algumas APIs Win32 herdadas junto com APIs modernas (componentes UWP). Este teste identifica binários geridos que usam APIs não suportadas.

Detalhes do teste
Este teste verifica todos os componentes UWP no aplicativo:

  • Verifica se cada binário gerenciado 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 controlado no pacote da aplicação não depende de uma função fora do perfil aprovado.

Ações corretivas
Isso pode ser corrigido garantindo que a aplicação foi compilada como uma versão de lançamento e não como uma versão de depuração.

Observação

A compilação de depuração de um aplicativo falhará nesse teste, mesmo que o aplicativo use apenas APIs para aplicativos UWP. Analise as mensagens de erro para identificar a API presente que não é uma API permitida 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 aplicações UWP para obter mais informações.

6. Teste de controle de conta de usuário (UAC)

Antecedentes
Garante que o aplicativo não esteja solicitando controle de conta de usuário em tempo de execução.

Detalhes do teste
Um aplicativo não pode solicitar elevação de administrador ou UIAccess de acordo com a política da Microsoft Store. Não há suporte para permissões de segurança elevadas.

Ações corretivas
As aplicações devem ser executadas como utilizador interativo. Consulte Visão geral da segurança da automação da interface do usuário para obter detalhes.

7. Validação de metadados do Tempo de Execução do Windows

Antecedentes
Garante que os componentes fornecidos em um aplicativo estejam em conformidade com o sistema do tipo UWP.

Detalhes do teste
Este teste lança uma série de indicadores relacionados ao uso adequado do tipo.

Ações corretivas

  • atributo ExclusivoPara
    Certifique-se de que as classes UWP não implementem interfaces que estejam marcadas como ExclusiveTo de outra classe
  • Correção geral de metadados
    Certifique-se de que o compilador que você está usando para gerar seus tipos esteja up-toatualizado com as especificações UWP.
  • Propriedades
    Verifique se todas as propriedades em uma classe UWP têm um método get (set métodos são opcionais). Para todas as propriedades, verifique se o tipo retornado pelo método get corresponde ao tipo do parâmetro de entrada do método set.
  • Digite a localização
    Verifique se os metadados de todos os tipos de UWP estão localizados no arquivo .winmd que tem o nome de correspondência de namespace mais longo no pacote do aplicativo.
  • Nome do tipo sensibilidade a maiúsculas e minúsculas
    Certifique-se de que todos os tipos de UWP tenham nomes exclusivos que não diferenciem maiúsculas de minúsculas no pacote do aplicativo. Certifique-se também de que nenhum nome de tipo UWP também seja usado como um nome de namespace no pacote do aplicativo.
  • Precisão do nome do tipo
    Verifique se não há tipos de UWP no namespace global ou no namespace de nível superior do Windows.

8. Testes de recursos de segurança do Windows

Alterar as proteções de segurança padrão do Windows pode colocar os clientes em maior risco.

8.1 Analisador de ficheiros proibido

Antecedentes
Alguns ficheiros foram atualizados com importantes melhorias de segurança, fiabilidade ou outras. Os aplicativos do Windows Desktop Bridge devem conter as versões mais recentes desses arquivos, pois as versões desatualizadas apresentam um risco. O Kit de Certificação de Aplicativos Windows bloqueia esses arquivos para garantir que todos os aplicativos usem a versão atual.

Detalhes do teste
Atualmente, a Verificação de Arquivo Proibido no Kit de Certificação de Aplicativos Windows verifica os seguintes arquivos:

  • Bing.Maps.JavaScript\js\veapicore.js
    Essa verificação geralmente falha quando um aplicativo está usando uma versão "Release Preview" do arquivo em vez da versão oficial mais recente.

Ações corretivas
Para corrigir isto, utilize a versão mais recente do SDK Bing Maps para aplicações UWP.

8.2 Assinatura de código privado

Testa a existência de binários de assinatura de código privado dentro do pacote do aplicativo.

Antecedentes
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
Verifica se há arquivos dentro do pacote do aplicativo que tenham uma extensão .pfx ou .snk que indique que as chaves de assinatura privadas estão incluídas.

Ações corretivas
Remova todas as chaves de assinatura de código privado (como arquivos .pfx e .snk) do pacote.