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

# Comprobaciones de calidad del Validador de envíos

> Comprobaciones de calidad del Validador de envíos

Los tipos de problemas que identifica el Validador de envíos crecen y evolucionan con el tiempo. El objetivo es facilitar el camino desde el envío, pasando por la certificación, hasta el mercado.

El Validador de envíos ejecuta las siguientes comprobaciones de calidad:

* [Versión disponible](#ID4EY)
* [Versión aprobada del GDK](#ID4AGDK)
* [Game OS aprobado](#ID4EKB)
* [Marcador de inicio en el fragmento final para contenido (contenido descargable (DLC))](#ID4EHD)
* [Archivos Resources.pri adicionales](#ID4EDE)
* [Falta el archivo Resources.pri](#ID4ERF)
* [Una aplicación por paquete](#ID4EBBAC)
* [Tamaño máximo del paquete](#ID4E3BAC)
* [Archivo ajeno](#ID4EDCAC)
* [Examen de binarios](#ID4EEEAC)
* [Versiones de componentes de Microsoft (MS)](#ID4ESFAC)
* [Archivos dependientes que faltan](#ID4MDF)
* [Binarios ARM64](#IDDKDF)

<a id="ID4EY" />

## Versión disponible

El Validador de envíos comprueba que la versión que ha instalado sea la versión más reciente y correcta. Si no lo es, el registro de salida del Validador de envíos muestra un error. El mensaje de error, que se muestra en la sección siguiente, contiene un vínculo para descargar la versión correcta.

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

## Versión aprobada del GDK

Cuando crea un paquete del GDK para PC (msixvc), el Validador de envíos comprueba que el GDK que usó para el empaquetado pertenece a una versión aprobada del GDK. Si la versión no está en la lista de versiones aprobadas o en desuso, el registro del validador muestra un error.

```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 versión está en la lista de versiones en desuso, el registro del validador muestra un mensaje informativo. Este mensaje indica que la versión ha expirado y ya no recibirá revisiones (hotfixes).

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

Si el Validador de envíos no puede determinar la versión del GDK a partir de los archivos incluidos en el paquete (por ejemplo, porque los archivos están cifrados), muestra el mensaje siguiente.

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

### Cómo se inserta la versión del GDK en los ejecutables del juego

Cuando compila un ejecutable del juego usando un GDK que incluye `XGameRuntime.h`, el compilador inserta la versión del GDK en una sección PE personalizada denominada `.xbld`. El Validador de envíos lee esta sección para determinar qué versión del GDK se usó para compilar los binarios del título.

Si la sección `.xbld` falta o no se puede leer, el Validador de envíos recurre a usar la versión de las herramientas de empaquetado como versión del GDK para el envío. Es posible que esta versión no represente con precisión la versión del GDK usada para compilar sus binarios.

**Causa común: software antimanipulación**

Las herramientas antimanipulación y de cifrado de datos que procesan el ejecutable pueden cifrar o quitar la sección `.xbld`. Esta acción hace que el Validador de envíos no pueda leer la sección. Para resolver este problema, configure su herramienta antimanipulación para que excluya la sección `.xbld` del procesamiento.

#### Themida

Agregue la siguiente **Advanced Option** (separada por comas) a su archivo de configuración de Themida para excluir la sección `.xbld` de la protección:

```
OPTION_ADVANCED_DONT_PROCESS_SECTIONS=.xbld
```

#### GuardIT

Para excluir la sección `.xbld` del cifrado de datos en GuardIT, agregue una entrada `<exclude>` a la configuración de protección de cifrado:

```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 sección `<exclude>` impide que `.xbld` se cifre.

<a id="ID4EKB" />

## Game OS aprobado

El Validador de envíos comprueba que el Game OS y cualquier componente opcional del Microsoft Game Development Kit (GDK) pertenezcan a la misma versión del Microsoft Game Development Kit (GDK) y que sean una versión aprobada para su uso en títulos publicados. Si la versión no está en la lista de versiones aprobadas o en desuso, el registro del validador incluye un error, como se muestra en la sección siguiente.

```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 versión se encuentra en la lista de versiones en desuso, el registro del validador incluye un mensaje informativo. Este mensaje indica que la versión ha expirado y ya no recibirá revisiones (hotfixes), como se muestra en la sección siguiente.

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

Si las versiones de los componentes no coinciden entre sí o si la versión no está en las listas de versiones aprobadas o en desuso, el registro del validador incluye un error, como se muestra en la sección siguiente.

```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>Es posible que el Validador de envíos no complete sus comprobaciones de validación si el equipo de desarrollo en el que se ejecuta no puede acceder a información en línea. Por ejemplo, si no tiene acceso a Internet, está bloqueado por un firewall o no tiene conectividad de red.</Note>

<a id="ID4EHD" />

## Marcador de inicio en el fragmento final para contenido (contenido descargable (DLC))

Para garantizar un funcionamiento correcto en todos los escenarios, los paquetes de contenido deben marcar el fragmento final con el atributo de marcador de inicio. Si el fragmento final no incluye el marcador de inicio, es posible que el paquete se pruebe correctamente pero cause problemas a los usuarios finales en algunos casos. El mensaje de error se muestra a continuación.

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

<a id="ID4EWD" />

<a id="ID4EDE" />

## Archivos Resources.pri adicionales

El Validador de envíos comprueba que no existan archivos *Resources.pri* adicionales en otros directorios del diseño. Al igual que con *MicrosoftGame.config*, solo se usa el que está en la raíz. Sin embargo, tener varias copias podría generar confusión sobre cuál es la correcta y cuál es la intención de los desarrolladores respecto a esos otros archivos.

Esta comprobación es paralela a una comprobación similar de copias adicionales de MicrosoftGame.config. En este caso, las copias adicionales dan como resultado un error en la sección Foreign Files Check del registro, como se muestra a continuación.

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

<a id="ID4ERF" />

## Falta el archivo Resources.pri

No es necesario localizar las aplicaciones. Sin embargo, si una aplicación no incluye un archivo *Resources.pri* en la raíz (la misma ubicación que MicrosoftGame.config), aparece la siguiente advertencia en la sección Foreign Files Check del registro de salida.

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

<a id="ID4EBBAC" />

## Una aplicación por paquete

El Validador de envíos ahora valida que los paquetes contengan solo una aplicación que no sea DevOnly por paquete.

<a id="ID4E3BAC" />

## Tamaño máximo del paquete

Cuando la distribución es en disco, el Validador de envíos comprueba que el tamaño del paquete no supere los 49.900.000.000 bytes. Esta comprobación solo proporciona un mensaje informativo, no un error.

Cuando la distribución no es en disco, el Validador de envíos comprueba que el tamaño del paquete no supere los 500 GB. También proporciona un mensaje de advertencia cuando el tamaño del paquete supera los 450 GB. Los mensajes son los siguientes:

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

## Archivo ajeno

Un problema detectado al revisar envíos para el programa XBOX 360 es la inclusión de varios archivos con el envío, generalmente por accidente, que no deberían formar parte de un título comercial.

La comprobación Foreign File Check usa el archivo .xml de diseño para comprobar en todos los archivos incorporados al paquete de título nombres de archivo y extensiones concretos que no se permiten en el paquete. Esta comprobación se basa únicamente en los nombres de archivo, no en el contenido de los archivos. Los archivos no permitidos incluyen extensiones relacionadas con archivos de código fuente y de depuración, Thumb.db, archivos de registro superfluos distintos de los de la raíz y la lista completa de archivos del sistema operativo XBOX que no pueden aparecer en los paquetes de título. Esta comprobación valida el requisito de XBOX XR-003: Title Quality for Submission.

En la tabla siguiente se muestran los tipos de archivo y las extensiones que no se permiten en el paquete de título enviado.

| Tipo de archivo                                | Extensiones                  |
| ---------------------------------------------- | ---------------------------- |
| Archivos relacionados con código fuente        | .c .cpp, .cs, .lib, .h, .obj |
| Archivos de información de depuración/símbolos | .pdb, .sym                   |
| Archivos binarios heredados                    | .xbe                         |

Un título puede usar legítimamente casi cualquier extensión de archivo imaginable, lo que puede provocar posibles conflictos con las comprobaciones de extensiones. Si esta situación afecta a su título, avise a su administrador de desarrollo de asociados (PDM).

Si cree que tiene un caso excepcional que requiere incluir en el paquete de título un archivo por el que está recibiendo un mensaje de error en el registro del Validador de envíos, consulte con su PDM.

En el ejemplo siguiente se muestra la salida del registro que notifica errores en la comprobación 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" />

## Examen de binarios

Los binarios de la consola XBOX (archivos .exe y .dll) deben compilarse para AMD64 y contener únicamente código nativo. Actualmente, la plataforma no admite binarios de código administrado. La comprobación Binary Scan Check examina cada archivo .exe y .dll que incluya en el paquete de título y garantiza que cumple estos requisitos. Use esta comprobación para validar XR-003: Title Quality for Submission.

En la sección Binary Scan, se comprueba en cada archivo .exe y .dll la existencia de dependencias bloqueadas por motivos de seguridad en las consolas comerciales. Por lo general, este bloqueo adopta la forma de una vinculación con una versión de depuración de un archivo de plataforma, PIXEvt.dll o XBOX Studio.

En el ejemplo siguiente se muestra la salida del registro que notifica errores en la comprobación Binary Scan Check. Los dos primeros errores se deben a un archivo .exe vinculado a dos archivos que no están permitidos para consolas comerciales. El tercer error es un archivo .exe administrado. El último error es un archivo .dll de código nativo que no es 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>  
```

Los desarrolladores deben asegurarse de que estas dependencias orientadas a la depuración se excluyan de las compilaciones de versión de los binarios que se incluirán en un paquete de envío.

<a id="ID4ESFAC" />

## Versiones de componentes de Microsoft

El Game OS cubre gran parte del área expuesta de la plataforma para XBOX. Sin embargo, los títulos redistribuyen un conjunto de binarios proporcionados por Microsoft. La página [Approved Libraries](https://aka.ms/GdkApprovedLibs) del sitio de los foros de desarrolladores de XBOX enumera estos archivos y sus versiones aprobadas.

El Validador de envíos comprueba las versiones de estos archivos para garantizar que las versiones de los archivos DLL opcionales coincidan. También captura el identificador de versión del Game OS que el título de la partición exclusiva empaqueta en el XVC. Compruebe las versiones con la información publicada de bibliotecas aprobadas antes de enviar.

El Validador de envíos también extrae la información de versión de los archivos DLL opcionales de Kinect y de XBOX Services, si su título los incluye.

En el ejemplo siguiente se muestra la información de versión que aparece en el archivo de registro del Validador de envíos.

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

## Archivos dependientes que faltan

Cuando se vincula dinámicamente con bibliotecas dependientes, si faltan estas bibliotecas, el Validador de envíos incluye el siguiente error:

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

## Binarios ARM64

Puede incluir binarios ARM64 en su paquete de juego para PC junto con sus ejecutables existentes compilados para x64. El Validador de envíos comprueba que MicrosoftGame.config haga referencia correctamente al ejecutable apropiado.

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

## Consulte también

[Validador de envíos (SubmissionValidator.dll)](/build/core-features/common/packaging/subval/submissionvalidator)

[Mensajes del Validador de envíos](/build/core-features/common/packaging/subval/submissionvalidator-messages)

[Creación de paquetes (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg)

[Empaquetado de títulos, actualizaciones de contenido y pruebas de instalación por streaming](/build/core-features/common/packaging/title-packaging-streaming-install-testing)

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


## Related topics

- [Validador de envíos (SubmissionValidator.dll)](/es/build/core-features/common/packaging/subval/submissionvalidator.md)
- [Mensajes del Validador de envíos](/es/build/core-features/common/packaging/subval/submissionvalidator-messages.md)
- [Referencia de comprobaciones de calidad del Submission Validator (SubVal)](/es/build/core-features/common/packaging/subval/index.md)
- [Escenarios multijugador comunes](/es/services/xbox-services/multiplayer/overviews/live-common-multiplayer-scenarios.md)
- [Guía paso a paso de certificación](/es/publishing/game-publishing/concepts/certification/certification-guide.md)
