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

# Empaquetado de títulos, actualizaciones y pruebas de instalación por streaming

> Empaquetado de títulos, actualizaciones de contenido y pruebas de instalación por streaming

En este artículo se explica cómo crear paquetes para la instalación por streaming a lo largo del ciclo de vida de desarrollo, incluidas la iteración local, la validación de rendimiento, las pruebas previas al envío y el envío final. Se describen los pasos que ejecuta la herramienta MakePkg durante el empaquetado y se destacan las prácticas recomendadas para empaquetar y probar la instalación por streaming durante el desarrollo.

## Introducción

[MakePkg.exe](/build/core-features/common/packaging/deployment/makepkg) es una herramienta que coloca contenido en un archivo binario empaquetado, denominado XBOX Virtual Container (XVC). Los paquetes para consola tienen la extensión de nombre de archivo .xvc y los paquetes para PC tienen la extensión de nombre de archivo .msixvc. Además de la diferencia de extensión, se agrega un sufijo al nombre del paquete para diferenciar entre los paquetes de la familia XBOX One (\_x) y los de la familia XBOX Series X|S (\_xs).

MakePkg.exe usa el contenido del título y un archivo de asignación como entrada para producir paquetes cifrados mediante una clave de prueba conocida, una clave generada aleatoriamente o una clave estable segura para el cifrado. La clave que se usa para el cifrado depende de si el paquete está destinado a pruebas locales o al envío a Microsoft para su publicación. En las secciones siguientes se detallan los casos de uso.

El XML del [archivo de asignación](/build/core-features/common/packaging/deployment/atoc-deployment-schema) tiene dos finalidades. En primer lugar, especifica la ubicación de los archivos que están disponibles para el título en tiempo de ejecución. En segundo lugar, especifica el archivo de fragmento (chunk) al que pertenece cada archivo. Un conjunto de fragmentos, conocido como el *conjunto de inicio* (launch set), se instala siempre antes de que se permita ejecutar un título. Los fragmentos restantes se instalan mientras el título se ejecuta. Hay API disponibles para consultar el progreso de la instalación de fragmentos y para modificar el orden de instalación de los fragmentos que aún no se han instalado.

En este artículo:

* [Pasos durante el empaquetado](#steps_during_packaging)
* [Pasos recomendados para el empaquetado durante el desarrollo](#recommended_steps_for_packaging_during_development)
* [Pruebas de paquetes de instalación por streaming](#testing_of_streaming_installation_packages)
* [Prácticas recomendadas](#best_practices)
* [Errores de empaquetado causados por conexiones de datos abiertas](#open-data-connections)
* [Recursos y orientación](#resources_and_guidance)
* [Consulte también](#see_also)

<a id="steps_during_packaging" />

## Pasos durante el empaquetado

El proceso de empaquetado de MakePkg incluye varios pasos.

### Validación de MicrosoftGame.config y de la existencia de archivos

El comando `makepkg` comprueba que el archivo [MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-Overview) del directorio de origen de contenido sea válido y se pueda instalar.

Cuando ejecuta el comando `makepkg pack`, este garantiza que los archivos a los que se hace referencia en MicrosoftGame.config estén en el directorio de origen. Valida que estos archivos estén incluidos en el paquete para el conjunto de inicio. Esta validación incluye archivos binarios, archivos de imagen y cualquier otro recurso.

### Firma de binarios

XBOX Code Integrity (XCI) examina y firma los archivos del título. Como parte de este proceso, modifica los encabezados PE detectados en los archivos antes de escribirlos en el archivo de paquete. Si se produce un error en la firma, se notifica un mensaje de error. El mensaje incluye un comando para volver a ejecutar manualmente xcihash.exe y recopilar más detalles sobre el error de firma.

### Creación del paquete

En cuanto MakePkg completa los pasos de validación previa, crea un archivo de paquete. A continuación, MakePkg copia los archivos de origen, incluidos los ejecutables firmados, en el archivo de paquete en los fragmentos especificados por el archivo de asignación XML.

<Note>Solo consola: el último paso de la creación del paquete implica incrustar un archivo del sistema operativo Game OS (GameOs.xvd). Este archivo forma parte del Microsoft Game Development Kit (GDK) y debe estar en el directorio de diseño junto al ejecutable del juego. La marca `/gameos` especifica una ubicación de origen alternativa para el archivo de Game OS.</Note>

### Cifrado

| Tipo                                              | Firma de prueba (**/lt**) | Clave aleatoria (**/l**) | Clave estable (**/lk SECRET.LEKB**) |
| ------------------------------------------------- | ------------------------- | ------------------------ | ----------------------------------- |
| Carga diferencial (delta)                         | Sí                        | No                       | Sí                                  |
| packageutil compare                               | Sí                        | No                       | Sí                                  |
| Carga segura                                      | No                        | Sí                       | Sí                                  |
| Paquete seguro en reposo                          | No                        | Sí                       | Sí                                  |
| Instalación local (sideload) en kit de desarrollo | Sí                        | No                       | Sí                                  |
| Instalación local (sideload) en PC                | Sí                        | No                       | No                                  |

#### Firma de prueba (cifrado predeterminado)

El comportamiento predeterminado de MakePkg es crear paquetes firmados con firma de prueba, pero también se indica con el modificador `/lt` al llamar a `makepkg pack`. La firma de prueba cifra el archivo de paquete generado mediante una clave de cifrado de prueba conocida, pensada para la validación de pruebas de rendimiento, para la ejecución en XBOX y PC. Aunque el efecto del descifrado de paquetes en tiempo real está diseñado para ser transparente para el título, esto garantiza que cualquier posible problema de rendimiento derivado del cifrado se detecte antes de la certificación y la publicación final de los títulos. Los paquetes firmados con firma de prueba no están pensados para proteger criptográficamente el contenido, ya que el cifrado usa una clave fija. Un paquete firmado con firma de prueba se puede instalar en un kit de desarrollo mediante **xbapp install** y en un equipo PC de desarrollo mediante **wdapp install**.

#### Cifrado con clave aleatoria (modificador `/l`)

El modificador `/l` de MakePkg cifra el archivo de paquete con una clave de cifrado generada aleatoriamente. Además del paquete del título, MakePkg `/l` genera un archivo con un nombre con el formato *PackageFullName\_licenseName\_GUID.EKB*. (Observe el uso del carácter de subrayado (\_).) Los paquetes creados con el modificador `/l` no se pueden instalar en un kit de desarrollo ni en un equipo PC de desarrollo. Debe probar el título mediante paquetes firmados con firma de prueba hasta que el título supere todas las comprobaciones y pruebas previas al envío. Después de alcanzar ese estado, ejecute MakePkg con el modificador `/l` antes del envío final a Microsoft.

#### Recomendado: cifrado con clave estable (Genkey + modificador /lk)

El modificador `/lk` de Makepkg cifra el paquete con una clave estable (siempre la misma) creada por el comando `makepkg genkey`. Además del paquete del título, `makepkg /lk` genera archivos con nombres con el formato *PackageFullName\_licenseName\_GUID.EKB* y *PackageFullName\_licenseName\_GUID.CEKB*. (Observe el uso del carácter de subrayado (\_).) Los paquetes creados con el modificador `/lk` se pueden instalar en un kit de desarrollo, pero no en un equipo PC de desarrollo. En el caso de los equipos PC, debe probar el título mediante paquetes firmados con firma de prueba hasta que el título supere todas las comprobaciones y pruebas previas al envío.

Este es el modo de cifrado recomendado para las pruebas en kits de desarrollo y el envío, debido a estas ventajas:

1. packageutil compare puede generar estimaciones correctas del tamaño de las actualizaciones (a diferencia de /l).
2. Permite la carga diferencial segura a Partner Center mediante el mismo algoritmo que usan las consolas y los equipos PC para descargar actualizaciones de contenido.
3. Se puede instalar en kits de desarrollo (a diferencia de `/l`).
4. Usa material de clave de cifrado seguro y solo se puede descifrar en entornos específicos (a diferencia de `/lt`).

A diferencia de los modos de cifrado `/lt` y `/l`, el modo `/lk` requiere un paso adicional único para usarlo:

1. Una sola vez: ejecute `makepkg genkey /ekb SECRET_KEY.lekb` para crear el archivo SECRET\_KEY.lekb. Este es el Local Escrowed Key Blob (LEKB), que
   almacena la clave de contenido estable que cifra el paquete. Debe almacenarse en una ubicación segura con acceso restringido según la necesidad. En una configuración ideal,
   solo las máquinas y cuentas de compilación oficiales deberían tener acceso a él.
2. Creación del paquete: ejecute `makepkg pack /lk SECRET_KEY.lekb ...`. Esto crea un paquete cifrado con la clave almacenada en el archivo SECRET\_KEY.lekb.
3. Carga del paquete: los archivos XVC y EKB se cargan en Partner Center de la forma habitual. Los archivos LEKB y CEKB no se cargan.

`xbapp install` instala automáticamente el archivo CEKB necesario para cargar el paquete en un kit de desarrollo XBOX. Si está probando un escenario de instalación
distinto de la instalación basada en herramientas (disco de juego, almacenamiento externo, transferencia de consola a consola), use el comando `xbapp installkey` para
instalar solo el archivo CEKB.

<Warning>El contenido del archivo LEKB solo está ligeramente ofuscado. Es su responsabilidad garantizar la seguridad de los paquetes de contenido protegiendo el acceso al archivo LEKB. Cualquiera que posea el archivo LEKB y el archivo del paquete de contenido generado por `makepkg pack`</Warning>
puede descifrar su contenido.

<Warning>El contenido del archivo CEKB permite cargar el paquete en cualquier kit de desarrollo XBOX activo. Es su responsabilidad garantizar la seguridad de los paquetes de contenido protegiendo el acceso al archivo CEKB. Cualquiera que posea el archivo CEKB, un kit de desarrollo XBOX activo y el archivo del paquete de contenido generado por `makepkg pack`</Warning>
puede instalar el paquete en su kit de desarrollo, puede iniciar el paquete y puede extraer con xbcp los archivos del paquete.

### Validación de envío

MakePkg ejecuta automáticamente [Submission Validator (SubmissionValidator.dll)](/build/core-features/common/packaging/subval/submissionvalidator) sobre los archivos del título después de crear el paquete. El objetivo de Submission Validator es comprobar errores y problemas que pueden causar inconvenientes a los títulos más adelante en los procesos de ingesta, envío o certificación en Microsoft, o en futuras actualizaciones de contenido. Debe corregir todos los problemas detectados antes de poder generar un paquete firmado para cargarlo en Partner Center.

El proceso de validación de envío genera un archivo de registro XML que detalla la naturaleza y la ubicación de los errores. El proceso escribe este archivo de registro en la misma ubicación especificada por el parámetro `/pd` de MakePkg para la salida del archivo de paquete. Este registro puede contener errores o advertencias. Debe resolver los errores antes de poder enviar un paquete a Microsoft. Considere corregir las advertencias para garantizar que los títulos cumplan las directivas y las directrices de XBOX Requirements (XR).

Cuando carga un paquete en Partner Center y lo envía para el proceso de ingesta, las comprobaciones de validación se ejecutan de nuevo. Este proceso garantiza que el título se compruebe con la versión más reciente de Submission Validator y que cualquier problema se detecte lo antes posible.

#### Pruebas de validación de envío

| Pruebas de envío y validación | Descripción                                                                                                                                                                                                                                                                                  |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Archivos ajenos**           | Verifica que el título no contenga archivos prohibidos. Los archivos prohibidos incluyen archivos de código fuente y de depuración (por ejemplo, \*.c, \*.cpp, \*.obj, \*.lib, \*.cs y \*.h) y cualquier archivo de sistema contenido en el volumen de Game OS.                              |
| **MicrosoftGame.config**      | Varias comprobaciones de configuración que MakePkg no realiza: resolución y profundidad de bits de las imágenes de logotipo y de pantalla de inicio. Comprueba que los paquetes tengan compatibilidad adecuada con mods (solo PC Desktop).                                                   |
| **Examen de binarios**        | Se examinan todos los archivos .exe y .dll en busca de dependencias no minoristas. Cualquier binario de código administrado provoca un error (solo consola). Otros problemas que se detectan incluyen ejecutables que no son de XBOX (solo consola) y ejecutables de 32 bits (solo consola). |

Las pruebas específicas evolucionan con el tiempo a medida que Microsoft identifica nuevos problemas. Superar las comprobaciones de Submission Validator no debe interpretarse como una indicación de que no surgirán otros problemas con el envío del título durante el proceso de ingesta y certificación. Más bien, la intención es simplemente reducir el tiempo y el costo de los rechazos derivados de errores previsibles. Además, aunque Submission Validator puede comprobar ciertos problemas relacionados con la seguridad, no debe considerarse una prueba de seguridad para un título.

Puede descargar la versión más reciente de Submission Validator desde el sitio XBOX Game Developer (XGD). Dado que la herramienta puede evolucionar a un ritmo diferente al de las versiones del Software Development Kit de XBOX One, asegúrese de usar la versión más reciente para evitar rechazos por errores de validación en el proceso de envío. Para obtener la versión más reciente, consulte [XBOX Developer Downloads->XBOX One->Submission Validator](https://aka.ms/gdkdl).

Para obtener más información sobre Submission Validator, consulte [Submission Validator (SubmissionValidator.dll)](/build/core-features/common/packaging/subval/submissionvalidator) en la documentación del GDK.

Si tiene preguntas sobre el proceso de validación, póngase en contacto con su representante de cuentas de Microsoft.

<a id="recommended_steps_for_packaging_during_development" />

## Pasos recomendados para el empaquetado durante el desarrollo

Para crear paquetes durante el desarrollo, siga estos pasos. Use `wdapp` en lugar de `xbapp` cuando el destino sea PC.

1. Itere localmente mediante paquetes firmados con firma de prueba y **xbapp install** desde su PC de desarrollo.

   **MakePkg.exe pack /f** *Mapfile* **/d** *LooseContentDir* **/pd** *OutputFolder*

   Para empezar, consulte [XBOX Developer Downloads](https://aka.ms/xgddl).

2. Ejecute el título iniciándolo desde el shell o mediante **xbapp launch**.

   **xbapp install** *local-XVC-path* o **xbapp install** *http-URI*

   Para probar opciones alternativas de instalación por streaming, consulte [Pruebas de paquetes de instalación por streaming](#testing-streaming-installation-packages-console) más adelante en este artículo.

3. Pruebe la instalación del título desde la unidad óptica mediante un paquete firmado con firma de prueba grabado en un disco Blu-ray en la carpeta raíz. Después de insertar el disco en el kit de desarrollo XBOX, ejecute el comando siguiente.

   **xbapp install** XO:\\*XVC-file-name*

4. Prepare el envío final mediante el mismo comando de empaquetado que el paquete firmado con firma de prueba, pero agregue la marca `/l`.

<a id="testing_of_streaming_installation_packages" />

## Pruebas de paquetes de instalación por streaming (PC)

Use el comando `wdapp` para instalar paquetes en el equipo PC de prueba.

<Note>Actualmente, el paquete MSIXVC de prueba debe existir en una unidad física del equipo PC de prueba o en un servidor web. En una actualización futura, se agregará la instalación desde recursos compartidos de Convención de nomenclatura universal (UNC).</Note>

Para obtener más información, consulte [Introducción al empaquetado para PC](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC).

## Pruebas de paquetes de instalación por streaming (consola)

Puede probar la instalación de paquetes de instalación por streaming firmados con firma de prueba de cuatro maneras.

### Transmitir desde el PC de desarrollo

La transmisión desde el PC de desarrollo no admite ninguna limitación de rendimiento. La velocidad de la instalación depende de las características del procesador y de E/S de su PC de desarrollo, así como del ancho de banda de la conexión de red entre el PC de desarrollo y el kit de desarrollo. Puede esperar velocidades de 300 Mbps (aproximadamente 36 MiB/s) o superiores en conexiones Ethernet de gigabit desde equipos PC de desarrollo modernos con discos duros mecánicos.

**xbapp install** *dev-pc-path-to-XVC*

[Instalación mediante la línea de comandos](/tools/tools-console/commandlinetools/xbapp#xbapp-install)

[Instalación mediante XBOX Manager](/tools/tools-console/xbom/manager-tool-managing-applications#deploying-apps)

### Hospedar el paquete en un servidor web

Si su servidor web admite la configuración de limitación de ancho de banda, hospedar el paquete en un servidor web permite simular diferentes velocidades de entrega de red. La plataforma XBOX One controla los errores de conexión y la lógica de reintento. El título debería ejecutarse igual al instalarse desde un origen de Internet que desde un disco óptico, salvo por la velocidad.

**xbapp install** *http-URI-to-package*

[Instalación mediante la línea de comandos](/tools/tools-console/commandlinetools/xbapp#xbapp-install)

[Instalación mediante XBOX Manager](/tools/tools-console/xbom/manager-tool-managing-applications#deploying-apps)

### Grabar el paquete en un disco y, después, instalarlo desde la línea de comandos

Grabe un disco óptico con el XVC en el directorio raíz y, después, instale el paquete mediante el comando siguiente.

**xbapp install** XO:\\*XVC-file-name*

### Grabar el paquete en un disco y, después, instalarlo mediante el shell

Grabe un disco óptico con una carpeta denominada MSXC que contenga el paquete.

Inserte el disco en un kit de desarrollo en funcionamiento. El shell comienza a instalar el título automáticamente y el kit de desarrollo muestra una notificación después de que se instala el conjunto de inicio y el título se puede iniciar.

<a id="best_practices" />

## Prácticas recomendadas

### Use actualizaciones de contenido de subarchivos

Use actualizaciones de contenido de subarchivos, que reducen el tamaño de las actualizaciones de contenido. Cree el diseño del paquete de forma que garantice actualizaciones de contenido óptimas en el futuro.

Para obtener más información sobre cómo crear paquetes para una actualización óptima, consulte [Prácticas recomendadas de actualización de contenido](/build/core-features/common/packaging/packaging-updates).

### XBOX Requirement 034 (XR-034: Streaming Install Initial Play Marker)

Incluir un marcador de reproducción inicial es opcional, pero muy recomendable. Permite a un usuario ejecutar el título antes de que esté completamente instalado, mientras la instalación continúa en segundo plano. Según [XR-034](https://learn.microsoft.com/build/store/policies/Console/certification-requirements#content-packages-and-updates): Streaming Install Initial Player Marker, los títulos que incluyen un marcador de reproducción inicial deben proporcionar una experiencia de juego cuando se inician desde dicho marcador.

### Pruebe el título

Pruebe el título mientras se instala desde varios orígenes y a diferentes velocidades.

### Use la versión más reciente de Submission Validator

Use siempre la versión más actualizada de Submission Validator.

La versión más reciente de Submission Validator está disponible en [XBOX Developer Downloads->XBOX One->Submission Validator](https://aka.ms/gdkdl).

<a id="open-data-connections" />

### Errores de empaquetado causados por conexiones de datos abiertas

Cuando instala un paquete mediante `xbapp install /w`, o cuando **XBOX Manager** instala un paquete con la opción **Keep data connection open** habilitada (que se usa para escenarios de Intelligent Delivery y de fragmentos a petición), la canalización de datos entre la consola y el archivo de paquete en su PC permanece abierta después de que finaliza la instalación. Esta conexión abierta bloquea el archivo de paquete.

Si intenta recompilar o reempaquetar el título mientras esta canalización está abierta, `makepkg` genera un error de infracción de uso compartido porque no puede escribir en el archivo de paquete bloqueado.

**Para resolver este problema, cierre la conexión de datos abierta antes de recompilar:**

* **XBOX Manager**: en la aplicación XBOX Manager, busque el paquete instalado y desactive la opción **Keep data connection open**, o desinstale y vuelva a instalar el paquete sin esa opción habilitada.
* **xbapp install**: omita la marca `/w` cuando no necesite que la canalización permanezca abierta después de la instalación. Use `/w` solo cuando el título necesite solicitar fragmentos adicionales en tiempo de ejecución durante las pruebas de desarrollo.
* **Cerrar XBOX Manager**: cerrar XBOX Manager por completo libera todos los identificadores de archivo abiertos que mantiene sobre los archivos de paquete.

<Tip>Si usa una integración de motor (como las herramientas de plataforma XBOX de Unreal Engine) que genera el archivo de paquete en un directorio de salida fijo, asegúrese de que XBOX Manager libere el archivo antes de desencadenar una nueva compilación. Mover el directorio de salida entre compilaciones es otra forma de evitar conflictos.</Tip>

<a id="resources_and_guidance" />

## Recursos y orientación

Para obtener más información, consulte los artículos siguientes:

* Sistema > Información general > [Instalación por streaming e Intelligent Delivery: información general](/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)
* Sistema > Información general > Instalación por streaming > [Reordenación dinámica de fragmentos](/build/core-features/common/packaging/packaging-chunkreordering)
* Sistema > Información general > Instalación por streaming > [Instalación por streaming: estado](/build/core-features/common/packaging/packaging-installstatus)
* Pruebas, automatización y publicación > Herramientas > Instalación por streaming > [Esquema de paquete de implementación](/build/core-features/common/packaging/deployment/atoc-deployment-schema)
* Pruebas, automatización y publicación > Herramientas > Instalación por streaming > [Make Package (makepkg.exe)](/build/core-features/common/packaging/deployment/makepkg)

<a id="see_also" />

## Consulte también

[MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-toc)
[Submission Validator (SubmissionValidator.dll)](/build/core-features/common/packaging/subval/submissionvalidator)
[Pruebas de calidad de Submission Validator](/build/core-features/common/packaging/subval/submissionvalidator-tests)
[XBOX Manager: administración de aplicaciones y archivos](/tools/tools-console/xbom/manager-tool-managing-applications#deploying-apps)


## Related topics

- [Instalación por streaming e Intelligent Delivery: información general](/es/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery.md)
- [XR-034 Marcador de reproducción inicial de la instalación por streaming](/es/publishing/certification/xr/xr-034.md)
- [XR-123 Instalación y desbloqueo de complementos durante el juego](/es/publishing/certification/xr/xr-123.md)
- [FMA: XR-034 Marcador de juego inicial de la instalación por streaming](/es/publishing/certification/fma/xr-034.md)
- [Información general de la certificación de XBOX](/es/publishing/certification/overview.md)
