> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Verificações de qualidade do Submission Validator

> Verificações de qualidade do Submission Validator

Os tipos de problemas que o Submission Validator identifica crescem e evoluem ao longo do tempo. O objetivo é facilitar o caminho desde o envio, passando pela certificação, até o mercado.

O Submission Validator executa as seguintes verificações de qualidade:

* [Versão disponível](#ID4EY)
* [Versão do GDK aprovada](#ID4AGDK)
* [Game OS aprovado](#ID4EKB)
* [Marcador de inicialização no bloco final para conteúdo (conteúdo para download (DLC))](#ID4EHD)
* [Arquivos Resources.pri adicionais](#ID4EDE)
* [Arquivo Resources.pri ausente](#ID4ERF)
* [Um aplicativo por pacote](#ID4EBBAC)
* [Tamanho máximo do pacote](#ID4E3BAC)
* [Arquivo estranho](#ID4EDCAC)
* [Verificação de binários](#ID4EEEAC)
* [Versões de componentes da Microsoft (MS)](#ID4ESFAC)
* [Arquivos dependentes ausentes](#ID4MDF)
* [Binários ARM64](#IDDKDF)

<a id="ID4EY" />

## Versão disponível

O Submission Validator verifica se a versão instalada é a versão mais atual e correta. Se não for, o log de saída do Submission Validator mostrará uma falha. A mensagem de falha, mostrada na seção a seguir, contém um link para baixar a versão correta.

```xml theme={null}
<component>Available Version Check</component>
<failure>A required update to Submission Validator is available. The latest version can be downloaded from https://aka.ms/currentsubvalzip. Download and install the update, then rebuild the package. Contact your 
Developer Account Manager for assistance.</failure> 
```

<a id="ID4AGDK" />

## Versão do GDK aprovada

Quando você cria um pacote do GDK para PC (msixvc), o Submission Validator verifica se o GDK usado para empacotar é de uma versão do GDK aprovada. Se a versão não estiver na lista de aprovadas ou preteridas, o log do validador mostrará uma falha.

```xml theme={null}
<failure>ILI_PcGdkUnsupportedThe GDK used to compile your binaries is not supported. Use only supported GDK versions according to the Approved Libraries page located at https://aka.ms/GdkApprovedLibs</failure>
```

Se a versão estiver na lista de preteridas, o log do validador mostrará uma mensagem informativa. Essa mensagem indica que a versão expirou e não receberá mais hotfixes.

```xml theme={null}
<info>The GDK used to compile your binaries is expired and will no longer receive hotfixes.</info>
```

Se o Submission Validator não conseguir determinar a versão do GDK a partir dos arquivos incluídos no pacote (por exemplo, porque os arquivos estão criptografados), ele exibirá a mensagem a seguir.

```xml theme={null}
<info>A GDK version was not able to be extracted from your game executable. The version of the tools used for packaging will be used as the GDK version for this submission. If this is not correct, ensure any executables listed in your MicrosoftGame.config include XGameRuntime.h or you include appropriate middleware which consumes this header. See https://aka.ms/EmbeddedGdkVersion for more information.</info>
```

<a id="EmbeddedGdkVersion" />

### Como a versão do GDK é inserida nos executáveis do jogo

Quando você compila um executável de jogo usando um GDK que inclui `XGameRuntime.h`, o compilador insere a versão do GDK em uma seção PE personalizada chamada `.xbld`. O Submission Validator lê essa seção para determinar qual versão do GDK foi usada para compilar os binários do título.

Se a seção `.xbld` estiver ausente ou ilegível, o Submission Validator usará como alternativa a versão das ferramentas de empacotamento como a versão do GDK para o envio. Essa versão pode não representar com precisão a versão do GDK usada para compilar seus binários.

**Causa comum: software antiadulteração**

Ferramentas antiadulteração e de criptografia de dados que processam seu executável podem criptografar ou remover a seção `.xbld`. Essa ação torna a seção ilegível para o Submission Validator. Para resolver esse problema, configure sua ferramenta antiadulteração para excluir a seção `.xbld` do processamento.

#### Themida

Adicione a seguinte **Advanced Option** (separada por vírgulas) ao arquivo de configuração do Themida para excluir a seção `.xbld` da proteção:

```
OPTION_ADVANCED_DONT_PROCESS_SECTIONS=.xbld
```

#### GuardIT

Para excluir a seção `.xbld` da criptografia de dados no GuardIT, adicione uma entrada `<exclude>` à configuração do guard de criptografia:

```xml theme={null}
<guard_cmd name="EncryptionWrapper">
    <encryption_wrapper>
        <action>
            <fail />
        </action>
        <algorithm_decryption>
            <use>AES128</use>
        </algorithm_decryption>
        <algorithm_integrity>
            <use>fast</use>
        </algorithm_integrity>
        <protected_types>
            <custom>
                <data>true</data>
                <native_code>true</native_code>
                <unused_areas>true</unused_areas>
            </custom>
        </protected_types>
        <exclude>
            <range>
                <section matching="exact">.xbld</section>
            </range>
        </exclude>
        <debug>false</debug>
        <disable>false</disable>
    </encryption_wrapper>
</guard_cmd>
```

A seção `<exclude>` impede que `.xbld` seja criptografada.

<a id="ID4EKB" />

## Game OS aprovado

O Submission Validator verifica se o Game OS e quaisquer componentes opcionais do Microsoft Game Development Kit (GDK) são da mesma versão do Microsoft Game Development Kit (GDK) e se são uma versão aprovada para uso em títulos lançados. Se a versão não estiver na lista de aprovadas ou preteridas, o log do validador incluirá uma falha, conforme mostrado na seção a seguir.

````xml theme={null}
<failure>The GameOS included in this package is not an approved version. Use only 
supported GameOS versions according to the Approved Libraries page on the Developer 
Network Portal</failure>  
```

Se a versão for encontrada na lista de preteridas, o log do validador incluirá uma mensagem informativa. Essa mensagem indica que a versão expirou e não receberá mais hotfixes, conforme mostrado na seção a seguir.

```xml
<info>The GameOS included in this package is expired and will no longer receive hotfixes.</info>  
````

Se as versões dos componentes não corresponderem entre si ou se a versão não estiver nas listas de aprovadas ou preteridas, o log do validador incluirá uma falha, conforme mostrado na seção a seguir.

```xml theme={null}
<failure>The GameOS version does not match the version of other Microsoft components 
included in this package. Use only components from the same Microsoft Game Development Kit (GDK)/Xbox One Software Development Kit release. Refer to the 
Approved Libraries page on the Developer Network Portal</failure>  
```

<Note>O Submission Validator pode não concluir suas verificações de validação se o PC de desenvolvimento no qual está sendo executado não puder acessar informações online. Por exemplo, se não tiver acesso à Internet, estiver bloqueado por um firewall ou não tiver conectividade de rede.</Note>

<a id="ID4EHD" />

## Marcador de inicialização no bloco final para conteúdo (conteúdo para download (DLC))

Para garantir a operação adequada em todos os cenários, os pacotes de conteúdo devem marcar o bloco final com o atributo de marcador de inicialização. Se o bloco final não incluir o marcador de inicialização, é possível que o pacote seja testado corretamente, mas cause problemas para os usuários finais em alguns casos. A mensagem de falha é mostrada a seguir.

```xml theme={null}
<failure>Content Packages require final layout chunk to include attribute marker="Launch"</failure>  
```

<a id="ID4EWD" />

<a id="ID4EDE" />

## Arquivos Resources.pri adicionais

O Submission Validator verifica se não existem arquivos *Resources.pri* adicionais em outros diretórios do layout. Assim como acontece com o *MicrosoftGame.config*, somente o que está na raiz é usado. No entanto, ter várias cópias pode gerar confusão sobre qual delas é a correta e qual é a intenção dos desenvolvedores em relação a esses outros arquivos.

Essa verificação é paralela a uma verificação semelhante para cópias adicionais do MicrosoftGame.config. Nesse caso, cópias adicionais resultam em uma falha na seção Foreign Files Check do log, mostrada a seguir.

```xml theme={null}
<failure>D:\path\mytitle\mytitlesubdirectory\resources.pri</failure>  
```

<a id="ID4ERF" />

## Arquivo Resources.pri ausente

Os aplicativos não precisam ser localizados. No entanto, se um aplicativo não incluir um arquivo *Resources.pri* na raiz (no mesmo local que o MicrosoftGame.config), o aviso a seguir aparecerá na seção Foreign Files Check do log de saída.

```xml theme={null}
<warning>Non-localized app: 'resources.pri' is missing</warning>  
```

<a id="ID4EBBAC" />

## Um aplicativo por pacote

O Submission Validator agora valida se os pacotes contêm apenas um aplicativo não DevOnly por pacote.

<a id="ID4E3BAC" />

## Tamanho máximo do pacote

Quando você distribui em disco, o Submission Validator verifica se o tamanho do pacote não excede 49.900.000.000 bytes. Essa verificação fornece apenas uma mensagem informativa, não um erro.

Quando você não distribui em disco, o Submission Validator verifica se o tamanho do pacote não excede 500 GB. Ele também fornece uma mensagem de aviso quando o tamanho do pacote é superior a 450 GB. As mensagens são as seguintes:

```xml theme={null}
(WARNING) ILI_XvcPackageSizeApproached: "The size of this package is approaching the maximum allowed size for uploading to Partner Center. The maximum size of a package for uploading to Partner Center is {0} GB."
```

```xml theme={null}
(FAILURE) ILI_XvcPackageSizeExceeded: "The size of this package exceeds the maximum allowed size for uploading to Partner Center. The maximum size of a package for uploading to Partner Center is {0} GB."
```

<a id="ID4EDCAC" />

## Arquivo estranho

Um problema encontrado ao revisar envios para o programa XBOX 360 é a inclusão de vários arquivos no envio, geralmente por acidente, que não deveriam fazer parte de um título de varejo.

O Foreign File Check usa o arquivo .xml de layout para verificar todos os arquivos trazidos para o pacote do título em busca de nomes de arquivo e extensões específicos que não são permitidos no pacote. Essa verificação se baseia apenas nos nomes dos arquivos, não no conteúdo dos arquivos. Os arquivos não permitidos incluem extensões relacionadas a arquivos de origem e de depuração, Thumb.db, arquivos de registro excedentes além dos que estão na raiz e a lista completa de arquivos do sistema operacional do XBOX que não podem aparecer em pacotes de títulos. Essa verificação valida o Requisito do XBOX XR-003: Title Quality for Submission.

A tabela a seguir mostra os tipos de arquivo e as extensões que não são permitidos no pacote do título enviado.

| Tipo de arquivo | Extensões |
| - | - |
| Arquivos relacionados ao código-fonte | .c .cpp, .cs, .lib, .h, .obj |
| Arquivos de informações de depuração/símbolos | .pdb, .sym |
| Arquivos binários herdados | .xbe |

Um título pode usar legitimamente quase qualquer extensão de arquivo imaginável, o que pode gerar possíveis conflitos com as verificações de extensões. Se essa situação afetar seu título, avise seu gerente de desenvolvimento de parceiros (PDM).

Se você achar que tem um caso excepcional que exige que um arquivo seja incluído no pacote do título e para o qual está recebendo uma mensagem de falha no log do Submission Validator, consulte seu PDM.

O exemplo a seguir mostra a saída do log que relata falhas no Foreign File Check.

```xml theme={null}
<component>Foreign File Check</component>
<failures>
  <failure>c:\MyTitle\loose\bar.cpp</failure>
  <failure>c:\MyTitle\loose\MySubDir\example.h</failure>
  <failure>c:\MyTitle\loose\MySubDir\PDBs\BlockedFiles\foo.pdb</failure>
</failures>
<filecount>3</filecount>  
```

<a id="ID4EEEAC" />

## Verificação de binários

Os arquivos binários do console XBOX (.exe e .dll) devem ser compilados para AMD64 e conter somente código nativo. Atualmente, a plataforma não dá suporte a binários de código gerenciado. O Binary Scan Check examina cada arquivo .exe e .dll que você inclui no pacote do título e garante que ele atenda a esses requisitos. Use essa verificação para validar o XR-003: Title Quality for Submission.

Na seção Binary Scan, cada arquivo .exe e .dll é verificado em busca de dependências bloqueadas por motivos de segurança em consoles de varejo. Geralmente, esse bloqueio assume a forma de vinculação a uma versão de depuração de um arquivo da plataforma, PIXEvt.dll ou XBOX Studio.

O exemplo a seguir mostra a saída do log que relata falhas no Binary Scan Check. As duas primeiras falhas resultam de um arquivo .exe vinculado a dois arquivos que não são permitidos em consoles de varejo. A terceira falha é um arquivo .exe gerenciado. A falha final é um arquivo .dll de código nativo que não é AMD64.

```xml theme={null}
<component>Binary Scan</component>
      <dumpbinlocation>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\dumpbin.exe</dumpbinlocation>
      <failures>
   <failure>Non-retail dependency in file c:\MyTitle\loose\ExeWithDebugDependencies.exe: MSVCR110D.dll</failure>
  <failure>Non-retail dependency in file c:\MyTitle\loose\ExeWithDebugDependencies.exe: PIXEvt.dll</failure>
  </failures>
  <failure>Managed: Not AMD64: c:\MyTitle\loose\MySubDir\ABC.exe</failure>
  <failure>Not AMD64: c:\MyTitle\loose\MySubDir\XYZ.dll</failure>
</failures>  
```

Os desenvolvedores devem garantir que essas dependências voltadas para depuração sejam excluídas das compilações de versão dos binários a serem incluídos em um pacote de envio.

<a id="ID4ESFAC" />

## Versões de componentes da Microsoft

O Game OS abrange grande parte da área de superfície da plataforma do XBOX. No entanto, os títulos redistribuem um conjunto de binários fornecidos pela Microsoft. A página [Approved Libraries](https://aka.ms/GdkApprovedLibs) no site dos Fóruns de Desenvolvedores do XBOX lista esses arquivos e suas versões aprovadas.

O Submission Validator verifica as versões desses arquivos para garantir que quaisquer arquivos DLL opcionais tenham versões correspondentes. Ele também captura a Version ID do Game OS que o título da partição exclusiva empacota no XVC. Verifique as versões em relação às informações publicadas sobre bibliotecas aprovadas antes de enviar.

O Submission Validator também extrai as informações de versão dos arquivos DLL opcionais do Kinect e dos XBOX Services, se o seu título os incluir.

O exemplo a seguir mostra as informações de versão que aparecem no arquivo de log do Submission Validator.

```xml theme={null}
<component>MS Component Versions</component>
<component name="GameOS">60BBA05C-22F0-4452-84B6-DD278594716E</component>
<component name="Microsoft.Xbox.Services.dll">10.0.18362.7198</component>  
```

<a id="ID4MDF" />

## Arquivos dependentes ausentes

Quando você vincula dinamicamente bibliotecas dependentes, se essas bibliotecas estiverem ausentes, o Submission Validator incluirá a seguinte falha:

```xml theme={null}
<failure>{0}: Binary file has a dependency on a file that is not included in the layout: {1}. This file must be included in the layout for your package.</failure>
```

<a id="IDDKDF" />

## Binários ARM64

Você pode incluir binários ARM64 no pacote do seu jogo para PC junto com seus executáveis x64 compilados existentes. O Submission Validator verifica se o MicrosoftGame.config está referenciando corretamente o executável apropriado.

```xml theme={null}
<failure>Executable with the Architecture attribute set to ARM64 is not compiled for the ARM64 platform. Please ensure the attributes are set correctly for this executable in your MicrosoftGame.config file.</failure>
```

```xml theme={null}
<failure>Executable is compiled for the ARM64 platform but does not have the Architecture attribute set to ARM64. Please ensure the attributes are set correctly for this executable in your MicrosoftGame.config file.</failure>
```

<a id="ID4E5OAC" />

## Confira também

[Submission Validator (SubmissionValidator.dll)](/pt-BR/build/core-features/common/packaging/subval/submissionvalidator)

[Mensagens do Submission Validator](/pt-BR/build/core-features/common/packaging/subval/submissionvalidator-messages)

[Criar pacote (makepkg.exe)](/pt-BR/build/core-features/common/packaging/deployment/makepkg)

[Empacotamento de títulos, atualizações de conteúdo e testes de instalação por streaming](/pt-BR/build/core-features/common/packaging/title-packaging-streaming-install-testing)

Requisitos do XBOX (XRs) [(XBOX Developer Downloads->Partner, Publishing, and Release Management Information->XGD Partner Documentation)](https://aka.ms/xgddl)


## Related topics

- [XR-003 Qualidade do título para envio](/pt-BR/publishing/certification/xr/xr-003.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Guia passo a passo da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-guide.md)
- [Casos de teste com mais falhas](/pt-BR/publishing/certification/xr-top-failing.md)
