Windows Dev Center

Testes do Kit de Certificação de Aplicativos Windows para Windows Phone

O Kit de Certificação de Aplicativos Windows contém diversos testes que podem garantir que seu aplicativo do Windows Phone 8.1 esteja pronto para ser publicado na Loja.

Nome do testeWindows 8Windows 8.1Windows Phone 8.1Windows 10

Manifesto do aplicativo

Sim

Sim

Sim

Sim

Teste dos recursos de segurança do Windows

Sim

Sim

Sim

Sim

Teste da API da Windows Store com suporte

Sim

Sim

Sim

Sim

Teste de recursos de manifesto do aplicativo

Sim

Sim

Sim

Sim

Teste de configuração de depuração

Sim

Sim

Sim

Sim

Teste de codificação de arquivo

Sim

Sim

Sim

Sim

Teste de capacidade do aplicativo

Sim

Sim

Sim

Sim

Validação dos metadados do tempo de execução do Windows

Sim

Sim

Sim

Sim

Arquivos apropriados para a plataforma

Sim

Sim

Sim

Sim

Integridade do pacote

Não

Não

Sim

Não

Uso do serviço de notificação do aplicativo

Observação  Incluído nas ferramentas de desenvolvedor do Windows Insider Preview

Não

Não

Sim

Não

Teste do uso de recursos

Sim

Sim

Sim

Sim

 

Testes para certificação de aplicativos do Windows Phone 8.1

Teste de conformidade do pacote

Testa o conteúdo do pacote para garantir que os conteúdos sejam válidos.

Teste de conformidade de manifesto do aplicativo

Testa o conteúdo do manifesto do aplicativo para garantir que os conteúdos sejam válidos.

Histórico

Os aplicativos devem ter um manifesto corretamente formatado.

Detalhes do teste

Analisa o manifesto do aplicativo para verificar se o conteúdo está correto, conforme descrito em Requisitos de metadados de pacote.

  • Protocolos e extensões de arquivo

    Seu aplicativo pode declarar as extensões de arquivo às quais se associar. Se isso for feito de maneira indevida, o aplicativo poderá declarar um número imenso de extensões de arquivo, a maior parte das quais ele poderá nem mesmo usar, resultando em uma experiência do usuário insatisfatória. Este teste adicionará uma verificação para limitar o número de extensões de arquivo aos quais um aplicativo pode se associar.

  • Regra de Dependência de Estrutura

    Esse teste enfatiza o requisito de que os aplicativos do Windows Phone 8.1 obtenham as devidas dependências no Tempo de Execução do Windows. Se existir uma dependência inadequada, o teste falhará.

    EstruturaMín. do sistema operacionalFunciona no Windows Phone 8.1

    Microsoft.VCLibs.120.00.Phone

    6.3.1

    Sim

     

    Se houver incompatibilidade entre a versão do sistema operacional ao qual o aplicativo se qualifica e as dependências de estrutura que foram feitas, o teste falhará. O teste também falha quando o aplicativo se refere a versões prévias das dlls de estrutura.

Ação corretiva

Analise o manifesto do aplicativo em relação aos requisitos descritos em Requisitos de metadados de pacote.

Uso do serviço de notificação do aplicativo

Aplicativos que declaram um serviço de notificação específicos (WNS ou MPN) devem usar apenas esse tipo de notificação. Se o aplicativo estiver chamando uma API de um serviço de notificação não declarado, o teste falhará. Esse teste se aplica somente a XAP, que é um tipo de empacotamento de aplicativo de telefone herdado.

Histórico

Nos casos em que um aplicativo declara um serviço de notificação, mas usa outro, qualquer notificação potencialmente pode falhar. APIs de notificação do .NET herdadas não funcionam se o WNS for declarado. APIs de notificação do WinRT modernas também não funcionarão se o MPN for declarado.

Detalhes do teste

Se o manifesto contiver o atributo NotificationService, o teste fará uma verificação cruzada nas APIs chamadas para analisar se elas correspondem ao serviço que foi declarado.

Ação corretiva

Se o aplicativo declarar o WNS no manifesto do aplicativo, use APIs do WNS. Se o aplicativo declarar o MPN, use as APIs de notificação do .NET herdadas.

Teste dos recursos de segurança do Windows

Histórico

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

Detalhes do teste

Testa a segurança do aplicativo executando o Analisador de Binários BinScope.

Os testes do Analisador de Binários BinScope examinam os arquivos binários do aplicativo em busca de práticas de programação e compilação que o tornam menos vulnerável a ataques ou a ser usado como um vetor de ataque.

Os testes do Analisador de Binários BinScope verificam o uso correto dos seguintes recursos relacionados à segurança:

Testes do Analisador de Binários BinScope

Os testes do Analisador de Binários BinScope examinam os arquivos binários do aplicativo em busca de práticas de programação e compilação que o tornam menos vulnerável a ataques ou a ser usado como um vetor de ataque.

Os testes do Analisador de Binários BinScope verificam o uso correto destes recursos relacionados à segurança:

AllowPartiallyTrustedCallersAttribute

Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste APTCACheck

O atributo AllowPartiallyTrustedCallersAttribute (APTCA) habilita 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 do assembly, o que pode comprometer a segurança.

O que fazer se o seu aplicativo for reprovado pelo teste

Não use o atributo APTCA em assemblies com nome forte, a menos que seu projeto exija e os riscos sejam bem entendidos. Nesses casos, verifique se todas as APIs estão protegidas com as devidas demandas de segurança de código de acesso. O APTCA não tem efeito quando o assembly faz parte de um aplicativo da Windows Store.

Comentários

Esse teste é realizado apenas em código gerenciado (C#, .NET, etc.).

Proteção de manipulação de exceções /SafeSEH

Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste SafeSEHCheck

Um manipulador de exceções é executado quando o aplicativo encontra uma condição excepcional, tal como um erro de divisão por zero. Como o endereço do manipulador da exceção é armazenado na pilha quando uma função é chamadas, ele ficaria vulnerável a um ataque de estouro de buffer se algum software malicioso substituísse a pilha.

O que fazer se o seu aplicativo for reprovado pelo teste

Habilite a opção /SAFESEH no comando vinculador ao compilar o 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 do seu aplicativo.

Comentários

O teste não é realizado em arquivos binários de 64 bits ou em arquivos binários para o 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 o seu aplicativo executa código armazenado em um segmento de dados.

O que fazer se o seu aplicativo for reprovado pelo teste

Habilite a opção /NXCOMPAT no comando vinculador ao compilar o seu aplicativo. Essa opção está ativada por padrão em versões do vinculador com suporte à Prevenção de Execução de Dados (DEP).

Comentários

Recomendamos que você teste os seus aplicativos em uma CPU habilitada para DEP e conserte qualquer falha indicada.

Teste da API da Windows Store com suporte

Teste o aplicativo em busca d o uso de APIs fora de conformidade.

Histórico

Para serem certificados na Windows Store, os aplicativos devem usar as APIs para aplicativos da Windows Store (tempo de execução do Windows ou APIs do Win32 compatíveis). Esse teste também identifica as situações em que um binário gerenciado depende de uma função fora do perfil aprovado do Windows 8 ou Windows 8.1.

Detalhes do teste

  • Verifica se cada binário no pacote do aplicativo não depende de uma API do Win32 incompatível com o desenvolvimento do aplicativo da Windows Store verificando a tabela de endereço de importação do binário.
  • Verifica se cada binário gerenciado no pacote do aplicativo não depende de uma função fora do perfil aprovado do Windows 8 ou Windows 8.1.

Ações corretivas

Verifique se o aplicativo foi compilado como uma compilação de versão e não como uma compilação de depuração.

Observação  A compilação de depuração de um aplicativo não passará neste teste mesmo se o aplicativo usar somente APIs para aplicativos da Windows Store.

Consulte as mensagens de erro para identificar a API usada pelo aplicativo que não é uma API para aplicativos da Windows Store.

Observação  Os aplicativos C++ integrados em uma configuração de depuração falham no teste se a configuração usar somente APIs do SDK do Windows para aplicativos da Windows Store. Para saber mais, veja Alternativas às APIs do Windows em aplicativos da Windows Store para saber mais.

Teste de recursos de manifesto do aplicativo

Validação de recursos do aplicativo

O aplicativo pode não ser instalado se as cadeias de caracteres ou imagens declaradas no manifesto do seu aplicativo estiverem incorretas. Se o aplicativo não for instalado com esses erros, o logotipo do aplicativo ou outras imagens usadas por ele poderão não ser exibidas corretamente.

Detalhes do teste

Inspeciona os recursos definidos no manifesto do aplicativo para garantir que estão presentes e são válidos.

Ação corretiva

Use a seguinte tabela como guia.

Mensagem de erroComentários

A imagem {imageName} define os qualificadores Scale e TargetSize; você pode definir somente um qualificador por vez.

Você pode personalizar imagens para resoluções diferentes.

Na mensagem real, {image name} contém o nome da imagem com o erro.

Verifique se cada imagem define Scale ou TargetSize como o qualificador. Para saber mais, veja Como nomear recursos usando qualificadores.

Falha nas restrições de tamanho da imagem {imageName}.

Verifique se todas as imagens do aplicativo atendem às restrições adequadas de tamanho.

Na mensagem real, {image name} contém o nome da imagem com o erro.

Para saber mais sobre as imagens do aplicativo e seus tamanhos, veja Imagens do aplicativo.

A imagem {imageName} está ausente no pacote.

Uma imagem necessária está ausente.

Na mensagem real, {image name} contém o nome da imagem que está ausente.

Para saber mais sobre as imagens do aplicativo e seus tamanhos, veja Imagens do aplicativo.

A imagem {imageName} não é um arquivo de imagem válido.

Verifique se todas as imagens do aplicativo atendem às restrições adequadas de tipo de formato de arquivo.

Na mensagem real, {image name} contém o nome da imagem que não é válida.

Para saber mais sobre as imagens do aplicativo e seus tamanhos, veja Imagens do aplicativo.

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 de selo é uma imagem mostrada ao lado da notificação de selo para identificar o aplicativo na tela de bloqueio. Essa imagem deve ser monocromática (pode conter somente pixels brancos ou transparentes).

Na mensagem real, {value} contém o valor da cor na imagem que não é válido.

Para saber mais sobre as imagens do aplicativo e seus tamanhos, veja Imagens do aplicativo.

A imagem “BadgeLogo” tem um valor ABGR {value} na posição (x, y) que não é válido para a imagem branca de alto contraste. O pixel deve ser (##2A2A2A) ou mais escuro, ou transparente (00######).

O logotipo de selo é uma imagem mostrada ao lado da notificação de selo para identificar o aplicativo na tela de bloqueio. Como o logotipo do selo é mostrado em uma tela de fundo branca quando está em branco de alto contraste, ele deve ser uma versão mais escura do logotipo padrão do selo. No banco de alto contraste, o logotipo do selo pode conter somente pixels que são mais escuros que (##2A2A2A) ou transparentes.

Na mensagem real, {value} contém o valor da cor na imagem que não é válido.

Para saber mais sobre as imagens do aplicativo e seus tamanhos, veja Imagens do aplicativo.

A imagem deve definir pelo menos uma variante, sem um qualificador TargetSize. Ela deve definir um qualificador Scale ou deixar Scale e TargetSize não especificados, que tem o padrão Scale-100.

Para saber mais, veja Diretrizes de dimensionamento de acordo com a densidade de pixels e Como nomear recursos usando qualificadores.

O pacote tem um arquivo "resources.pri" ausente.

Se você tiver conteúdo localizável no manifesto do aplicativo, verifique se o pacote do aplicativo inclui um arquivo resources.pri válido.

O arquivo "resources.pri" deve conter um mapa de recursos com um nome que corresponde ao nome do pacote {packageFullName}

Você pode obter esse erro quando o manifesto é alterado e o nome do mapa de recursos no resources.pri não corresponde mais ao nome do pacote no manifesto.

Na mensagem real, {packageFullName} contém o nome do pacote que o resources.pri deve conter.

Para corrigir isso, você precisa recompilar o resources.pri e a maneira mais fácil de fazer isso é recompilando o pacote do aplicativo.

O arquivo "resources.pri" não deve ter o AutoMerge habilitado.

O MakePRI.exe oferece suporte a uma opção denominada AutoMerge. O valor padrão de AutoMerge é off. Quando está habilitado, AutoMerge mescla os recursos de um pacote de idiomas do aplicativo em um único resources.pri no tempo de execução. Não recomendamos isso para os aplicativos da Windows Store que você pretende distribuir para a Windows Store. O resources.pri de um aplicativo da Windows Store que é distribuído por meio da Windows Store deve estar na raiz do pacote do aplicativo e conter todas as referências de idiomas com suporte pelo aplicativo.

A cadeia de caracteres {string} falhou na restrição de comprimento máximo de {number} caracteres.

Consulte os Requisitos de metadados do pacote.

Na mensagem real, {string} é substituído pela cadeia de caracteres com o erro e {number} contém o comprimento máximo.

A cadeia de caracteres {string} não pode ser espaço inicial/final.

O esquema dos elementos no manifesto do aplicativo não permite caracteres de espaço iniciais ou finais.

Na mensagem real, {string} é substituído pela cadeia de caracteres com o erro.

Verifique se algum dos valores localizados nos campos do manifesto no resources.pri contém caracteres de espaço iniciais ou finais.

A cadeia de caracteres não pode estar vazia (o comprimento deve ser maior que zero)

Para saber mais, veja Requisitos de metadados do pacote.

Não há recurso padrão especificado no arquivo "resources.pri".

Para saber mais, consulte Definindo recursos do aplicativo.

Não há valor de recurso especificado no arquivo "resources.pri".

Verifique se o manifesto do aplicativo tem recursos válidos definidos no resources.pri.

Para saber mais, veja Localizando o manifesto do pacote.

O arquivo de imagem <filename> deve ter menos de 204800 bytes.**

Reduza o tamanho das imagens indicadas.

O arquivo <filename> não deve conter um seção de mapeamento de reversão.**

Apesar do mapeamento de reversão ser gerado durante a "depuração F5" do Visual Studio ao chamar em makepri.exe, ele 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 quando se utiliza essa versão do kit.

 

Para saber mais, veja Validação de recursos do pacote do aplicativo.

Teste de configuração de depuração

Teste o aplicativo para ter certeza de que ele não é uma compilação de depuração.

Histórico

Para serem certificados para a Windows Store, os aplicativos não podem ser compilados para depuração e não devem referenciar versões de depuração de um arquivo executável. Além disso, você deve criar seu código como otimizado para que seu aplicativo passe nesse teste.

Detalhes do teste

Teste o aplicativo para garantir que ele não é uma compilação de depuração e que não está vinculado a estruturas de depuração.

Ações corretivas

  • Crie o aplicativo como uma compilação de versão antes de enviá-lo para a Windows Store.
  • Verifique se a versão correta do .NET framework está instalada.
  • Certifique-se de que o aplicativo não está vinculando versões de depuração de uma estrutura e se a versão é de liberação. Se o aplicativo contém componentes .NET, certifique-se de instalar a versão correta da estrutura .NET.

Validação de marca

Os aplicativos da Windows Store devem estar completos e totalmente funcionais. Os aplicativos que usam as imagens padrão (de modelos ou exemplos de SDK) apresentam uma experiência do usuário ruim e não podem ser identificados facilmente no catálogo da loja.

Detalhes do teste

O teste será validado se as imagens usadas pelo aplicativo não forem imagens padrão de exemplos do SDK ou do Microsoft Visual Studio.

Ações corretivas

Substitua as imagens padrão por algo mais distinto e que representa seu aplicativo.

ASLR (Address Space Layout Randomization)

Mensagem de erro do Kit de Certificação de Aplicativos Windows: Falha no teste DBCheck

O ASLR carrega imagens executáveis em locais imprevisíveis da memória, o que dificulta a ação de softwares mal-intencionados que esperam que um programa seja carregado em um determinado endereço virtual para operar de maneira previsível. Seu aplicativo e todos os componentes usados por ele devem oferecer suporte para ASLR.

O que fazer se o seu aplicativo for reprovado pelo teste

Habilite a opção /DYNAMICBASE no comando vinculador ao compilar o seu aplicativo. Verifique se todos os módulos usados pelo seu aplicativo usam essa opção do vinculador.

Comentários

Normalmente, o ASLR não afeta o desempenho. Mas, em alguns cenários, há um ligeiro aumento do desempenho em sistemas de 32 bits. É possível que o desempenho seja prejudicado em um sistema muito congestionado que possua muitas imagens carregadas em muitos locais diferentes da memória.

Esse teste apenas é realizado em aplicativos gravados em código gerenciado, por exemplo, com o uso do C# ou do .NET Framework.

Ler/gravar seção PE compartilhada

Mensagem de erro do Kit de Certificação de Aplicativos Windows: falha no teste SharedSectionsCheck.

Arquivos binários com seções graváveis marcadas como compartilhadas são uma ameaça à segurança. Não compile aplicativos com seções graváveis compartilhadas, a não ser que isso seja realmente necessário. Use CreateFileMapping ou MapViewOfFile para criar um objeto de memória compartilhados devidamente protegido.

O que fazer se o seu aplicativo for reprovado pelo teste

Remova todas as seções compartilhadas do aplicativo e crie objetos de memória compartilhados chamando CreateFileMapping ou MapViewOfFile com os devidos atributos de segurança e depois recompile seu aplicativo.

Comentários

Esse teste apenas é realizado em aplicativos gravados em linguagens não gerenciadas, por exemplo, com o uso do C# ou do C++.

AppContainerCheck

Mensagem de erro do Kit de Certificação de Aplicativos Windows: falha no teste AppContainerCheck.

AppContainerCheck verifica se o bit appcontainer no cabeçalho PE de um binário executável está definido. Aplicativos do Windows Phone 8.1 devem ter o bit appcontainer em todos os arquivos .exe e em todas as DLLs não gerenciadas para serem executados corretamente.

O que fazer se o seu aplicativo for reprovado pelo teste

Se um arquivo executável nativo for reprovado no teste, verifique se você usou o vinculador e o compilador mais recentes para criar o arquivo e se usou o sinalizador /appcontainer no vinculador.

Se um executável gerenciado falhar no teste, verifique se você usou o vinculador e o compilador mais recentes, como o Microsoft Visual Studio, para criar o aplicativo do Windows Phone 8.1.

Comentários

Esse teste é realizado em todos os arquivos .exe e em todas as DLLs não gerenciadas.

ExecutableImportsCheck

Mensagem de erro do Kit de Certificação de Aplicativos Windows: falha no teste ExecutableImportsCheck.

Uma imagem PE é reprovada nesse teste quando sua tabela de importação foi inserida em uma seção de código executável. Isso poderá ocorrer se você tiver habilitado a mesclagem de .rdata para a imagem PE, definindo o sinalizador /merge do vinculador Visual C++ como /merge:.rdata=.text.

O que fazer se o seu aplicativo for reprovado pelo teste

Não mescle a tabela de importação em uma seção de código executável. Verifique se o sinalizador /merge do vinculador Visual C++ não está definido para mesclar a seção “.rdata” em uma seção de código.

Comentários

Esse teste é realizado em todo o código binário, com exceção de assemblies inteiramente 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 nenhuma página mapeada como gravável e executável. Isso pode acontecer se o binário tem uma seção gravável e executável ou se SectionAlignment do binário é menor que PAGE_SIZE.

O que fazer se o seu aplicativo for reprovado pelo teste

O binário não pode ter uma seção gravável ou executável, e o valor SectionAlignment do binário deve ser pelo menos igual ao seu PAGE_SIZE.

Comentários

Esse teste é feito em todos os arquivos .exe e em todas as DLLs nativas não gerenciadas.

Um executável pode ter uma seção gravável e executável quando é criado com Editar e Continuar ativado (/ZI). Desativando Editar e Continuar, a seção inválida não está presente.

PAGE_SIZE é o SectionAlignment padrão para executáveis.

Analisador de arquivos banidos

Mensagem de erro do Kit de Certificação de aplicativos Windows: falha no teste de verificação de arquivo banido.

Os aplicativos do Windows Phone 8.1 não devem conter determinados arquivos. Esses arquivos possuem uma versão mais recente disponível que fornece aperfeiçoamentos importantes de segurança, confiabilidade ou de outros tipos. A Microsoft bloqueia esses arquivos no Kit de Certificação de Aplicativos Windows para garantir que todos os desenvolvedores usem a versão atual.

Detalhes do teste

A verificação de arquivo banido no Kit de Certificação de Aplicativos Windows atualmente 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 mais recente oficial.

    A versão mais recente do Kit de Certificação de Aplicativos Windows fornecida com o Windows 8.1 SDK adicionou uma verificação para as versões de pré-lançamento do Microsoft Advertising SDK. Se forem encontradas versões de pré-lançamento dos seguintes arquivos durante a fase de teste de arquivo banido, você precisará atualizar para a versão lançada do Microsoft Advertising SDK:

    • Microsoft.Advertising.Mobile.Display.winmd
    • Microsoft.Advertising.Mobile.UI.winmd
    • Microsoft.Advertising.Mobile.UI.Design.dl

Ações corretivas

Para corrigir esse problema, use a última versão do SDK do Bing Mapas para aplicativos da Windows Store.

Para corrigir os erros com o Microsoft Advertising SDK, use a versão mais recente do Microsoft Advertising SDK.

Assinatura de códigos privados

Testes para a existência de binários de assinatura de código privado no pacote de aplicativo.

Histórico

Os arquivos de assinatura de código privado devem ser mantidos privados, já que eles podem ser utilizados para fins maliciosos no caso de serem comprometidos.

Detalhes do teste

Os testes de arquivos no pacote de aplicativos que têm uma extensão .pfx ou .snk que indica que as chaves de assinatura privadas foram incluídas.

Ações corretivas

Remova todas as chaves de assinatura de código privado (por exemplo arquivos .snk e .pfx) do pacote.

Teste de contagem de aplicativo

Testa o conteúdo do pacote do aplicativo para garantir que apenas um aplicativo esteja presente.

Histórico

Os pacotes de aplicativos do Windows Phone 8.1 podem conter apenas um único aplicativo quando enviado à Loja.

Ações corretivas

Certifique-se de que o manifesto do aplicativo defina apenas um aplicativo por pacote.

Verificação de tamanho do pacote

Testa o tamanho do pacote de aplicativo para garantir que ele não exceda 4 GB.

Histórico

Os pacotes de aplicativos do Windows Phone 8.1 são restritos a um tamanho de 4 GB para envio à Loja. Observe que esta restrição se aplica ao pacote, não ao conteúdo expandido.

Ações corretivas

Reduza o tamanho do pacote de aplicativos para garantir que a versão esteja dentro do limite de tamanho permitido de 4 GB.

Validação do manifesto do pacote

Testes para garantir que há apenas um pacote de aplicativo principal num pacote e que a arquitetura é ou ARM ou Neutral.

Histórico

Espera-se que os pacotes de aplicativos do Windows Phone 8.1 contenham um único pacote de aplicativo principal que tenha como alvo uma arquitetura ARM ou Neutral. Pode haver até 512 pacotes no pacote.

Ações corretivas

Atualize o pacote de aplicativo para garantir que haja apenas um aplicativo principal no pacote e que a arquitetura apropriada esteja definida. Pode ser necessário remover os pacotes de arquitetura de x86 e/ou x64 do pacote. Se o pacote contiver mais de 512 pacotes, você terá que reduzir o número de pacotes para atender à exigência.

Teste de API compatível

APIs com suporte

Testa o aplicativo em busca do uso de APIs fora de conformidade.

Histórico

Para serem certificados para a Loja, os aplicativos devem usar as APIs para aplicativos do Windows Phone 8.1. Esse teste também identifica as situações em que um binário gerenciado depende de uma função fora do perfil aprovado do Windows Phone 8.1.

Detalhes do teste

  • Verifica se cada binário no pacote do aplicativo não depende de uma API incompatível com o desenvolvimento do aplicativo do Windows Phone 8.1 verificando a tabela de endereço de importação do binário.

  • Verifica se cada binário gerenciado no pacote do aplicativo não depende de uma função fora do perfil aprovado do Windows Phone 8.1.

Ações corretivas

Verifique se o aplicativo foi compilado como uma compilação de versão e não como uma compilação de depuração.

Observação  A compilação de depuração de um aplicativo não passará neste teste mesmo se o aplicativo usar somente APIs para aplicativos da Windows Phone 8.1.

Consulte as mensagens de erro para identificar as APIs usadas pelo aplicativo que não são consideradas APIs para aplicativos do Windows Phone 8.1.

Teste de recursos de manifesto do aplicativo

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. O aplicativo não será instalado com esses erros ou o logotipo do aplicativo e outras imagens podem não ser exibidos corretamente.

Detalhes do teste

Inspeciona os recursos definidos no manifesto do aplicativo para garantir que estão presentes e são válidos.

Ações corretivas

Use a seguinte tabela como guia.

Mensagem de erroComentários

A imagem {imageName} define os qualificadores Scale e TargetSize. Só é possível definir um qualificador de cada vez.

Você pode personalizar imagens para resoluções diferentes.

Na mensagem real, {imageName} contém o nome da imagem com o erro.

Verifique se cada imagem define Scale ou TargetSize como o qualificador. Para saber mais, veja Como nomear recursos usando qualificadores.

Falha no cumprimento às restrições de tamanho da imagem {imageName}.

Verifique se todas as imagens do aplicativo atendem às restrições adequadas de tamanho.

Na mensagem real, {imageName} contém o nome da imagem com o erro.

Para saber mais sobre imagens e tamanhos do aplicativo, veja Imagens do aplicativo.

A imagem {imageName} está ausente no pacote.

Uma imagem necessária está ausente.

Na mensagem real, {imageName} contém o nome da imagem que está ausente.

Para saber mais sobre imagens e tamanhos do aplicativo, veja Imagens do aplicativo.

A imagem {imageName} não é um arquivo de imagem válido.

Verifique se todas as imagens do aplicativo atendem às restrições adequadas de tipo de formato de arquivo.

Na mensagem real, {imageName} contém o nome da imagem que não é válido.

Para saber mais sobre imagens e tamanhos do aplicativo, veja Imagens do aplicativo.

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 de selo é uma imagem mostrada ao lado da notificação de selo para identificar o aplicativo na tela de bloqueio. Essa imagem deve ser monocromática (pode conter somente pixels brancos ou transparentes).

Na mensagem real, {value} contém o valor da cor na imagem que não é válido.

Para saber mais sobre imagens e tamanhos do aplicativo, veja Imagens do aplicativo.

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 de selo é uma imagem mostrada ao lado da notificação de selo para identificar o aplicativo na tela de bloqueio. Como o logotipo do selo é mostrado em uma tela de fundo branca quando está em branco de alto contraste, ele deve ser uma versão mais escura do logotipo normal do selo. No banco de alto contraste, o logotipo do selo pode conter somente pixels que são mais escuros que (##2A2A2A) ou transparentes.

Na mensagem real, {value} contém o valor da cor na imagem que não é válido.

Para saber mais sobre imagens e tamanhos do aplicativo, veja Imagens do aplicativo.

A imagem deve definir pelo menos uma variante sem um qualificador TargetSize. Ela deve definir um qualificador Scale ou deixar Scale e TargetSize não especificados, que depois passa ao padrão Scale-100.

Para saber mais, veja Diretrizes de dimensionamento de acordo com a densidade de pixels e Como nomear recursos usando qualificadores.

O pacote tem um arquivo "resources.pri" ausente.

Se você tiver conteúdo que pode ser localizado no manifesto do aplicativo, verifique se o pacote do aplicativo inclui um arquivo resources.pri válido.

O arquivo "resource.pri" deve conter um mapa de recursos com um nome que corresponde ao nome do pacote {packageFullName}

Você pode obter esse erro quando o manifesto é alterado e o nome do mapa de recursos no resources.pri não corresponde mais ao nome do pacote no manifesto.

Na mensagem real, {packageFullName} contém o nome do pacote que o resources.pri deve conter.

Para corrigir isso, será necessário recriar resources.pri. A maneira mais fácil de fazer isso é através da recriação do pacote de aplicativos.

O arquivo "resources.pri" não deve ter o AutoMerge habilitado.

O MakePRI.exe oferece suporte a uma opção denominada AutoMerge. O valor padrão dessa propriedade é Desativado.

Quando está habilitado, o AutoMerge ativa os recursos de pacote de idiomas do aplicativo em um único resources.pri no tempo de execução.

A cadeia de caracteres {string} falhou na restrição de comprimento máximo de {number} caracteres.

Consulte os Requisitos de metadados do pacote.

Na mensagem real, {string} é substituído pela cadeia de caracteres com o erro e {number} contém o comprimento máximo.

A cadeia de caracteres {string} não pode ter espaço inicial/final.

O esquema dos elementos no manifesto do aplicativo não permite caracteres de espaço iniciais ou finais.

Na mensagem real, {string} é substituído pela cadeia de caracteres com o erro.

Verifique se algum dos valores localizados nos campos do manifesto no resource.pri contém caracteres de espaço iniciais ou finais.

A cadeia de caracteres não pode estar vazia (o comprimento deve ser maior que zero).

Para saber mais, veja Requisitos de metadados do pacote.

Não há recurso padrão especificado no arquivo "resources.pri".

Para saber mais, consulte Definindo recursos do aplicativo.

Não há valor de recurso especificado no arquivo "resources.pri".

Verifique se o manifesto do aplicativo tem recursos válidos definidos no resources.pri.

Para saber mais, veja Localizando o manifesto do pacote.

 

Para saber mais, veja Validação de recursos do pacote do aplicativo.

Validação de marca

Os aplicativos do Windows Phone 8.1 devem estar completos e totalmente funcionais. Os aplicativos que usam as imagens padrão (de modelos ou exemplos de SDK) apresentam uma experiência do usuário ruim e não podem ser identificados facilmente no catálogo da Loja.

Detalhes do teste

O teste valida se as imagens usadas pelo aplicativo não são imagens padrão de exemplos do SDK ou modelos do Visual Studio.

Ações corretivas

Substitua as imagens padrão por algo distinto e que representa seu aplicativo.

Teste de configuração de depuração

Configuração de depuração

Teste o aplicativo para ter certeza de que ele não é uma compilação de depuração.

Histórico

Para serem certificados para a Loja, os aplicativos não podem compilar para depuração e não devem referenciar versões de depuração de um arquivo executável. Além disso, você deve criar seu código como otimizado para passar nesse teste.

Detalhes do teste

Teste o aplicativo para garantir que ele não é uma compilação de depuração e que não está vinculado a estruturas de depuração.

Ações corretivas

  • Crie o aplicativo como uma compilação de versão antes de enviá-lo para a Loja.
  • Verifique se a versão correta do .NET Framework está instalada.
  • Certifique-se de que o aplicativo não está vinculando versões de depuração de uma estrutura e se a versão é de lançamento. Se o aplicativo contém componentes Microsoft .NET, instale a versão correta da do .NET Framework.

Teste de codificação de arquivo

Codificação de arquivos UTF-8

Histórico

Os arquivos HTML, CSS e JavaScript devem estar codificados no formato UTF-8 com a marca de ordem de byte (BOM) correspondente para aproveitar o cache do código de bytes e evitar determinadas condições de erro de tempo de execução.

Detalhes do teste

Teste se o conteúdo dos pacotes de aplicativos para verificar se estão usando a codificação de arquivos 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 Save with Encoding. Na caixa diálogo de opções de salvamento avançadas, escolha a opção Unicode (UTF-8 com assinatura) e clique em OK.

Teste de capacidade do aplicativo

Funcionalidades de uso especial

Histórico

As funcionalidades de uso especial destinam-se a cenários bastante específicos. Somente contas empresariais podem usar esses recursos.

Detalhes do teste

Valide se o aplicativo está declarando qualquer uma das capacidades abaixo:

  • EnterpriseAuthentication
  • SharedUserCertificates
  • DocumentsLibrary

Se qualquer uma dessas capacidades for declarada, o teste exibirá um aviso para o usuário.

Ações corretivas

Considere a remoção da funcionalidade de uso especial caso ela não seja necessária ao seu aplicativo. Além disso, o uso dessas funcionalidades está sujeito à análise da política do serviço.

Validação dos metadados do tempo de execução do Windows

Histórico

Verifica se os componentes do tempo de execução do Windows que vêm com o aplicativo são compatíveis com o sistema de tipo de tempo de execução do Windows.

Detalhes do teste

Verifica se os arquivos .winmd no pacote estão em conformidade com as regras de tempo de execução do Windows.

Ações corretivas

  • Teste do atributo ExclusiveTo: assegure-se de que as classes de Tempo de Execução do Windows não implementam interfaces marcadas como outra classe ExclusiveTo.
  • Tete de localização de tipos: verifique se os metadados de todos os tipos do Tempo de Execução do Windows estão localizados no arquivo winmd que tenha o nome correspondente com o namespace mais longo no pacote do aplicativo.
  • Teste de diferenciação de maiúsculas e minúsculas de nomes de tipos: verifique se todos os tipos do Tempo de Execução do Windows têm nomes exclusivos e sem diferenciação de maiúsculas e minúsculas no pacote do aplicativo. Assegure-se também de que nenhum nome de tipo do Tempo de Execução do Windows seja usado como nome de namespace no pacote do aplicativo.
  • Teste de exatidão de nomes de tipos: certifique-se de não existir tipos do Tempo de Execução do Windows no namespace global nem no namespace de nível superior do Windows.
  • Teste de exatidão de metadados gerais: verifique se o compilador que você está usando para gerar seus tipos do Tempo de Execução do Windows está atualizado de acordo 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 (os métodos set são opcionais). Verifique se o tipo de valor de retorno do método get corresponde ao parâmetro de entrada do método set em todas as propriedades dos tipos de Tempo de Execução do Windows.

Testes de integridade do pacote

Teste de arquivos apropriados para a plataforma

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

Histórico

Este teste valida os binários em um pacote de aplicativo para conflitos de arquitetura. Um pacote de aplicativo não deve incluir os binários que não podem ser utilizados na arquitetura do processador especificado no manifesto. Incluir binários sem suporte pode levar o aplicativo à falhas ou um aumento desnecessário no tamanho do pacote do aplicativo.

Detalhes do teste

Valida se o "número de bit" de cada arquivo no cabeçalho PE é apropriado em caso de referência cruzada com a declaração de arquitetura do processador do pacote do aplicativo

Ação corretiva

Siga estas diretrizes para garantir que seu pacote de aplicativos contenha apenas arquivos suportados pela arquitetura especificada no manifesto do aplicativo:

  • Se a Arquitetura do processador alvo para o aplicativo for Tipo de processador neutro, o pacote de aplicativo não pode conter binário x86, x64 ou ARM ou arquivos do tipo imagem.

  • Se a Arquitetura do processador alvo para o aplicativo for tipo de processador ARM, o pacote de aplicativo deve conter apenas binário ARM ou arquivos do tipo imagem. Se o pacote contiver binário x64 ou x86 ou tipos de imagem, ele irá falhar no teste.

Validação do pacote

Esse teste verifica se os pacotes de aplicativos são compatíveis com as regras do Windows Phone 8.1 para pacotes XAP.

Histórico

Esse teste valida uma série de elementos que existem dentro do pacote XAP compactado para garantir o conformidade com o Windows Phone 8.1.

Detalhes do teste

Para obter uma lista de mensagens de erro específicas que você pode encontrar, veja Compreendendo os erros de envio do aplicativo.

Ação corretiva

Analise e corrija erros que você possa encontrar nesse teste.

Observação  Embora esse teste só seja pertinente a aplicativos com base em XAP, o relatório final ainda vai refletir esse teste para aplicativos não baseados em XAP com resultado de aprovação.

Teste do uso de recursos

Teste de tarefa em segundo plano de WinJS

O teste de tarefa em segundo plano de WinJS verifica se os aplicativos JavaScript têm as declarações de fechamento apropriadas para que os aplicativos não consumam a bateria.

Histórico

Os aplicativos com testes JavaScript em segundo plano precisam chamar Close() como última declaração na tarefa em segundo plano. Os aplicativos que não executam isso podem impedir que o sistema retorne ao modo de espera conectado e resulte em drenagem 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 vai analisar o arquivo JavaScript de tarefa em segundo plano, que é especificado no pacote do aplicativo, e procurar uma instrução Close(). Se a instrução for encontrada, o teste será aprovado; caso contrário, reprovado.

Ação corretiva

Atualize o código JavaScript em segundo plano para chamar Close() corretamente.

 

 

Mostrar:
© 2015 Microsoft