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

# Contrôles de qualité de Submission Validator

> Contrôles de qualité de Submission Validator

Les types de problèmes identifiés par Submission Validator augmentent et évoluent au fil du temps. L'objectif est de faciliter le parcours de la soumission jusqu'à la mise sur le marché, en passant par la certification.

Submission Validator exécute les contrôles de qualité suivants :

* [Version disponible](#ID4EY)
* [Version du GDK approuvée](#ID4AGDK)
* [Game OS approuvé](#ID4EKB)
* [Marqueur de lancement dans le dernier bloc pour le contenu (contenu téléchargeable (DLC))](#ID4EHD)
* [Fichiers Resources.pri supplémentaires](#ID4EDE)
* [Fichier Resources.pri manquant](#ID4ERF)
* [Une application par package](#ID4EBBAC)
* [Taille maximale du package](#ID4E3BAC)
* [Fichier étranger](#ID4EDCAC)
* [Analyse des binaires](#ID4EEEAC)
* [Versions des composants Microsoft (MS)](#ID4ESFAC)
* [Fichiers dépendants manquants](#ID4MDF)
* [Binaires ARM64](#IDDKDF)

<a id="ID4EY" />

## Version disponible

Submission Validator vérifie que la version que vous avez installée est la version la plus récente et la bonne version. Si ce n'est pas le cas, le journal de sortie de Submission Validator indique un échec. Le message d'échec, présenté dans la section suivante, contient un lien permettant de télécharger la bonne version.

```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" />

## Version du GDK approuvée

Lorsque vous créez un package GDK pour PC (msixvc), Submission Validator vérifie que le GDK utilisé pour la création du package provient d'une version approuvée du GDK. Si la version ne figure ni dans la liste des versions approuvées ni dans celle des versions dépréciées, le journal du validateur indique un échec.

```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>
```

Si la version figure dans la liste des versions dépréciées, le journal du validateur affiche un message d'information. Ce message indique que la version a expiré et ne recevra plus de correctifs logiciels.

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

Si Submission Validator ne parvient pas à déterminer la version du GDK à partir des fichiers inclus dans le package (par exemple, parce que les fichiers sont chiffrés), il affiche le message suivant.

```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" />

### Comment la version du GDK est incorporée dans les exécutables de jeu

Lorsque vous compilez un exécutable de jeu à l'aide d'un GDK qui inclut `XGameRuntime.h`, le compilateur incorpore la version du GDK dans une section PE personnalisée nommée `.xbld`. Submission Validator lit cette section pour déterminer quelle version du GDK a été utilisée pour générer les binaires du titre.

Si la section `.xbld` est manquante ou illisible, Submission Validator utilise à la place la version des outils de création de package comme version du GDK pour la soumission. Cette version peut ne pas refléter fidèlement la version du GDK utilisée pour compiler vos binaires.

**Cause courante : logiciel anti-falsification**

Les outils anti-falsification et de chiffrement des données qui traitent votre exécutable peuvent chiffrer ou supprimer la section `.xbld`. Cette action rend la section illisible par Submission Validator. Pour résoudre ce problème, configurez votre outil anti-falsification afin d'exclure la section `.xbld` du traitement.

#### Themida

Ajoutez l'**option avancée** suivante (séparée par des virgules) à votre fichier de configuration Themida pour exclure la section `.xbld` de la protection :

```
OPTION_ADVANCED_DONT_PROCESS_SECTIONS=.xbld
```

#### GuardIT

Pour exclure la section `.xbld` du chiffrement des données dans GuardIT, ajoutez une entrée `<exclude>` à la configuration de votre garde de chiffrement :

```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>
```

La section `<exclude>` empêche le chiffrement de `.xbld`.

<a id="ID4EKB" />

## Game OS approuvé

Submission Validator vérifie que le Game OS et tous les composants facultatifs du Microsoft Game Development Kit (GDK) proviennent de la même version du Microsoft Game Development Kit (GDK) et qu'il s'agit d'une version approuvée pour une utilisation dans les titres publiés. Si la version ne figure ni dans la liste des versions approuvées ni dans celle des versions dépréciées, le journal du validateur inclut un échec, comme illustré dans la section suivante.

````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>  
```

Si la version figure dans la liste des versions dépréciées, le journal du validateur inclut un message d'information. Ce message indique que la version a expiré et ne recevra plus de correctifs logiciels, comme illustré dans la section suivante.

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

Si les versions des composants ne correspondent pas entre elles ou si la version ne figure ni dans la liste des versions approuvées ni dans celle des versions dépréciées, le journal du validateur inclut un échec, comme illustré dans la section suivante.

```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>Submission Validator peut ne pas terminer ses contrôles de validation si le PC de développement sur lequel il s'exécute ne peut pas accéder aux informations en ligne. Par exemple, s'il n'a pas accès à Internet, s'il est bloqué par un pare-feu ou s'il n'a aucune connectivité réseau.</Note>

<a id="ID4EHD" />

## Marqueur de lancement dans le dernier bloc pour le contenu (contenu téléchargeable (DLC))

Pour garantir un fonctionnement correct dans tous les scénarios, les packages de contenu doivent marquer le dernier bloc avec l'attribut de marqueur de lancement. Si le dernier bloc n'inclut pas le marqueur de lancement, il est possible que le package soit testé correctement, mais qu'il pose des problèmes aux utilisateurs finaux dans certains cas. Le message d'échec est présenté ci-dessous.

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

<a id="ID4EWD" />

<a id="ID4EDE" />

## Fichiers Resources.pri supplémentaires

Submission Validator vérifie qu'aucun fichier *Resources.pri* supplémentaire n'existe dans d'autres répertoires de la disposition. Comme pour *MicrosoftGame.config*, seul celui situé à la racine est utilisé. Toutefois, la présence de plusieurs copies peut prêter à confusion quant à celle qui est correcte et à l'intention des développeurs concernant ces autres fichiers.

Ce contrôle est similaire à celui effectué pour les copies supplémentaires de MicrosoftGame.config. Dans ce cas, les copies supplémentaires entraînent un échec dans la section Foreign Files Check du journal, comme illustré ci-dessous.

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

<a id="ID4ERF" />

## Fichier Resources.pri manquant

Les applications n'ont pas besoin d'être localisées. Toutefois, si une application n'inclut pas de fichier *Resources.pri* à la racine (au même emplacement que MicrosoftGame.config), l'avertissement suivant apparaît dans la section Foreign Files Check du journal de sortie.

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

<a id="ID4EBBAC" />

## Une application par package

Submission Validator vérifie désormais que les packages ne contiennent qu'une seule application non DevOnly par package.

<a id="ID4E3BAC" />

## Taille maximale du package

Lorsque vous distribuez sur disque, Submission Validator vérifie que la taille du package ne dépasse pas 49 900 000 000 octets. Ce contrôle fournit uniquement un message d'information, et non une erreur.

Lorsque vous ne distribuez pas sur disque, Submission Validator vérifie que la taille du package ne dépasse pas 500 Go. Il fournit également un message d'avertissement lorsque la taille du package dépasse 450 Go. Les messages sont les suivants :

```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" />

## Fichier étranger

L'un des problèmes rencontrés lors de l'examen des soumissions pour le programme XBOX 360 est l'inclusion, généralement accidentelle, de divers fichiers qui ne devraient pas faire partie d'un titre commercialisé.

Le contrôle Foreign File Check utilise le fichier .xml de disposition pour vérifier tous les fichiers ajoutés au package de titre afin de détecter des noms de fichiers et des extensions qui ne sont pas autorisés dans le package. Ce contrôle se base uniquement sur les noms de fichiers, et non sur leur contenu. Les fichiers non autorisés comprennent les extensions liées aux fichiers sources et de débogage, Thumb.db, les fichiers d'inscription superflus autres que ceux situés à la racine, ainsi que la liste complète des fichiers du système d'exploitation XBOX qui ne peuvent pas figurer dans les packages de titre. Ce contrôle valide l'exigence XBOX XR-003 : Title Quality for Submission.

Le tableau suivant présente les types de fichiers et les extensions qui ne sont pas autorisés dans le package de titre soumis.

| Type de fichier | Extensions |
| - | - |
| Fichiers liés au code source | .c .cpp, .cs, .lib, .h, .obj |
| Fichiers d'informations de débogage/symboles | .pdb, .sym |
| Fichiers binaires hérités | .xbe |

Un titre peut légitimement utiliser presque n'importe quelle extension de fichier imaginable, ce qui peut entraîner des conflits potentiels avec les contrôles d'extensions. Si cette situation concerne votre titre, informez-en votre Partner Development Manager (PDM).

Si vous estimez être dans un cas exceptionnel nécessitant l'inclusion dans votre package de titre d'un fichier pour lequel vous recevez un message d'échec dans le journal de Submission Validator, consultez votre PDM.

L'exemple suivant montre la sortie du journal qui signale des échecs dans le contrôle 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" />

## Analyse des binaires

Les fichiers binaires de console XBOX (.exe et .dll) doivent être générés pour AMD64 et ne contenir que du code natif. Actuellement, la plateforme ne prend pas en charge les binaires en code managé. Le contrôle Binary Scan Check examine chaque fichier .exe et .dll que vous incluez dans le package de titre et vérifie qu'il répond à ces exigences. Utilisez ce contrôle pour valider XR-003 : Title Quality for Submission.

Dans la section Binary Scan, chaque fichier .exe et .dll est vérifié afin de détecter les dépendances bloquées pour des raisons de sécurité sur les consoles commerciales. En général, ce blocage prend la forme d'une liaison à une version de débogage d'un fichier de plateforme, à PIXEvt.dll ou à XBOX Studio.

L'exemple suivant montre la sortie du journal qui signale des échecs dans le contrôle Binary Scan Check. Les deux premiers échecs résultent d'un fichier .exe lié à deux fichiers qui ne sont pas autorisés sur les consoles commerciales. Le troisième échec concerne un fichier .exe managé. Le dernier échec concerne un fichier .dll en code natif non 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>  
```

Les développeurs doivent s'assurer que ces dépendances axées sur le débogage sont exclues des versions de publication des binaires à inclure dans un package de soumission.

<a id="ID4ESFAC" />

## Versions des composants Microsoft

Le Game OS couvre une grande partie de la surface de la plateforme XBOX. Toutefois, les titres redistribuent un ensemble de binaires fournis par Microsoft. La page [Approved Libraries](https://aka.ms/GdkApprovedLibs) sur le site des forums des développeurs XBOX répertorie ces fichiers et leurs versions approuvées.

Submission Validator vérifie les versions de ces fichiers pour s'assurer que les fichiers DLL facultatifs ont des versions correspondantes. Il capture également l'ID de version du Game OS que le titre de partition exclusive intègre au XVC. Comparez les versions aux informations publiées sur les bibliothèques approuvées avant d'effectuer la soumission.

Submission Validator extrait également les informations de version des fichiers DLL facultatifs Kinect et XBOX services, si votre titre les inclut.

L'exemple suivant montre les informations de version qui apparaissent dans le fichier journal de 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" />

## Fichiers dépendants manquants

Lorsque vous effectuez une liaison dynamique avec des bibliothèques dépendantes et que ces bibliothèques sont manquantes, Submission Validator inclut l'échec suivant :

```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" />

## Binaires ARM64

Vous pouvez inclure des binaires ARM64 dans votre package de jeu pour PC en plus de vos exécutables compilés x64 existants. Submission Validator vérifie que le fichier MicrosoftGame.config référence correctement l'exécutable approprié.

```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" />

## Voir aussi

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

[Messages de Submission Validator](/fr/build/core-features/common/packaging/subval/submissionvalidator-messages)

[Créer un package (makepkg.exe)](/fr/build/core-features/common/packaging/deployment/makepkg)

[Création de packages de titres, mises à jour de contenu et test de l'installation en streaming](/fr/build/core-features/common/packaging/title-packaging-streaming-install-testing)

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


## Related topics

- [XR-003 Qualité du titre pour la soumission](/fr/publishing/certification/xr/xr-003.md)
- [XBOX Requirements pour les jeux XBOX](/fr/publishing/certification/xbox-requirements.md)
- [Validador de envíos (SubmissionValidator.dll)](/es/build/core-features/common/packaging/subval/submissionvalidator.md)
- [Referencia de comprobaciones de calidad del Submission Validator (SubVal)](/es/build/core-features/common/packaging/subval/index.md)
- [Empaquetado de títulos, actualizaciones y pruebas de instalación por streaming](/es/build/core-features/common/packaging/title-packaging-streaming-install-testing.md)
