Introducción
MakePkg.exe 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 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
- Pasos recomendados para el empaquetado durante el desarrollo
- Pruebas de paquetes de instalación por streaming
- Prácticas recomendadas
- Errores de empaquetado causados por conexiones de datos abiertas
- Recursos y orientación
- Consulte también
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 comandomakepkg comprueba que el archivo MicrosoftGame.config 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.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.Cifrado
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:
- packageutil compare puede generar estimaciones correctas del tamaño de las actualizaciones (a diferencia de /l).
- 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.
- Se puede instalar en kits de desarrollo (a diferencia de
/l). - Usa material de clave de cifrado seguro y solo se puede descifrar en entornos específicos (a diferencia de
/lt).
/lt y /l, el modo /lk requiere un paso adicional único para usarlo:
- Una sola vez: ejecute
makepkg genkey /ekb SECRET_KEY.lekbpara 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. - 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. - 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.
puede descifrar su contenido.
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) 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
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.
Para obtener más información sobre Submission Validator, consulte Submission Validator (SubmissionValidator.dll) 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.
Pasos recomendados para el empaquetado durante el desarrollo
Para crear paquetes durante el desarrollo, siga estos pasos. Usewdapp en lugar de xbapp cuando el destino sea PC.
- 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.
- 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 más adelante en este artículo.
- 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
-
Prepare el envío final mediante el mismo comando de empaquetado que el paquete firmado con firma de prueba, pero agregue la marca
/l.
Pruebas de paquetes de instalación por streaming (PC)
Use el comandowdapp para instalar paquetes en el equipo PC de prueba.
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).
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 Instalación mediante XBOX ManagerHospedar 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 Instalación mediante XBOX ManagerGrabar 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-nameGrabar 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.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.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: 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.Errores de empaquetado causados por conexiones de datos abiertas
Cuando instala un paquete mediantexbapp 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
/wcuando no necesite que la canalización permanezca abierta después de la instalación. Use/wsolo 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.
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
- Sistema > Información general > Instalación por streaming > Reordenación dinámica de fragmentos
- Sistema > Información general > Instalación por streaming > Instalación por streaming: estado
- Pruebas, automatización y publicación > Herramientas > Instalación por streaming > Esquema de paquete de implementación
- Pruebas, automatización y publicación > Herramientas > Instalación por streaming > Make Package (makepkg.exe)
