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

# Vérifications de qualité du validateur de soumission

> Vérifications de qualité du validateur de soumission

Les types de problèmes que le validateur de soumission détecte augmentent et évoluent au fil du temps. L'objectif est de faciliter le parcours de la soumission à la mise en marché, en passant par la certification.

Le validateur de soumission effectue les vérifications de qualité suivantes :

* [Version disponible](#ID4EY)
* [Version du GDK approuvée](#ID4AGDK)
* [Game OS approuvé](#ID4EKB)
* [Marqueur de lancement dans le bloc final 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

Le validateur de soumission 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 du validateur de soumission 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), le validateur de soumission vérifie que le GDK utilisé pour créer le package provient d'une version du GDK approuvée. Si la version ne figure pas dans la liste des versions approuvées ou 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 est expirée et ne recevra plus de correctifs.

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

Si le validateur de soumission ne peut 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 intégré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 intègre la version du GDK dans une section PE personnalisée nommée `.xbld`. Le validateur de soumission 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, le validateur de soumission utilise plutôt la version des outils de création de packages comme version du GDK pour la soumission. Cette version pourrait ne pas représenter 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 pour le validateur de soumission. Pour résoudre ce problème, configurez votre outil anti-falsification pour 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 protection par 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é

Le validateur de soumission 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 les titres publiés. Si la version ne figure pas dans la liste des versions approuvées ou dépréciées, le journal du validateur indique un échec, comme le montre 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 comprend un message d'information. Ce message indique que la version est expirée et ne recevra plus de correctifs, comme le montre 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 pas dans les listes des versions approuvées ou dépréciées, le journal du validateur indique un échec, comme le montre 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>Le validateur de soumission pourrait ne pas terminer ses vérifications si le PC de développement sur lequel il s'exécute ne peut pas accéder aux informations en ligne. Par exemple, il n'a pas accès à Internet, il est bloqué par un pare-feu ou il n'a aucune connectivité réseau.</Note>

<a id="ID4EHD" />

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

Pour garantir un fonctionnement adéquat dans tous les scénarios, les packages de contenu doivent marquer le bloc final avec l'attribut de marqueur de lancement. Si le bloc final n'inclut pas le marqueur de lancement, il est possible que le package soit testé correctement, mais qu'il cause 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

Le validateur de soumission 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 qui se trouve à la racine est utilisé. Toutefois, la présence de plusieurs copies pourrait créer de la confusion quant à savoir laquelle est la bonne et quelle est l'intention des développeurs à l'égard de ces autres fichiers.

Cette vérification est semblable à celle effectuée 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 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

Le validateur de soumission vérifie maintenant 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, le validateur de soumission vérifie que la taille du package ne dépasse pas 49 900 000 000 octets. Cette vérification ne fournit qu'un message d'information, et non une erreur.

Lorsque vous ne distribuez pas sur disque, le validateur de soumission 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 dans la soumission qui ne devraient pas faire partie d'un titre commercial.

La vérification des fichiers étrangers (Foreign File Check) utilise le fichier .xml de disposition pour vérifier si tous les fichiers intégrés au package de titre comportent des noms de fichiers et des extensions qui ne sont pas autorisés dans le package. Cette vérification repose 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 de la racine, ainsi que la liste complète des fichiers du système d'exploitation XBOX qui ne peuvent pas apparaître dans les packages de titres. Cette vérification 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 ou de 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 vérifications des extensions. Si cette situation touche votre titre, avisez votre gestionnaire du développement des partenaires (PDM).

Si vous estimez avoir un cas exceptionnel qui nécessite l'inclusion dans votre package de titre d'un fichier pour lequel vous recevez un message d'échec dans le journal du validateur de soumission, consultez votre PDM.

L'exemple suivant montre la sortie du journal qui signale des échecs dans la vérification des fichiers étrangers.

```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 de code managé. La vérification Binary Scan examine chaque fichier .exe et .dll que vous incluez dans le package de titre et s'assure qu'il respecte ces exigences. Utilisez cette vérification pour valider l'exigence 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 la plateforme, à PIXEvt.dll ou à XBOX Studio.

L'exemple suivant montre la sortie du journal qui signale des échecs dans la vérification Binary Scan. 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 de 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 commerciales 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) du site des forums des développeurs XBOX répertorie ces fichiers et leurs versions approuvées.

Le validateur de soumission 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 les packages de titre de la partition exclusive intègrent dans le fichier XVC. Comparez les versions aux informations publiées sur les bibliothèques approuvées avant de soumettre.

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

L'exemple suivant montre les informations de version qui apparaissent dans le fichier journal du validateur de soumission.

```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 à des bibliothèques dépendantes et que ces bibliothèques sont manquantes, le validateur de soumission indique 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. Le validateur de soumission 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

[Validateur de soumission (SubmissionValidator.dll)](/fr-CA/build/core-features/common/packaging/subval/submissionvalidator)

[Messages du validateur de soumission](/fr-CA/build/core-features/common/packaging/subval/submissionvalidator-messages)

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

[Création de packages de titres, mises à jour de contenu et tests d'installation en continu](/fr-CA/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

- [Guide de certification étape par étape](/fr-CA/publishing/game-publishing/concepts/certification/certification-guide.md)
- [XR-003 Qualité du titre pour la soumission](/fr-CA/publishing/certification/xr/xr-003.md)
- [XR003 Qualité du titre pour la soumission](/fr-CA/publishing/certification/fma/xr-003.md)
- [Soumissions optionnelles de certification](/fr-CA/publishing/game-publishing/concepts/certification/certification-optional-submissions.md)
- [Exigences XBOX testées lors de la certification pour les jeux sur console XBOX](/fr-CA/publishing/certification/console-cert-tested-requirements.md)
