Introduction
MakePkg.exe est un outil qui place du contenu dans un fichier binaire empaqueté, appelé XBOX Virtual Container (XVC). Les packages pour console portent l’extension de nom de fichier .xvc et les packages pour PC portent l’extension .msixvc. En plus de la différence d’extension, un suffixe est ajouté au nom du package pour distinguer les packages de la famille XBOX One (_x) et de la famille XBOX Series X|S (_xs). MakePkg.exe utilise le contenu de votre titre et un fichier de mappage comme entrées pour produire des packages chiffrés à l’aide d’une clé de test bien connue, d’une clé générée aléatoirement ou d’une clé stable sécuritaire pour le chiffrement. La clé utilisée pour le chiffrement dépend de si le package est destiné à des tests locaux ou à une soumission à Microsoft pour publication. Les sections suivantes détaillent les cas d’utilisation. Le XML du fichier de mappage a deux objectifs. Premièrement, il spécifie l’emplacement des fichiers accessibles au titre au moment de l’exécution. Deuxièmement, il spécifie le fichier de bloc (chunk) auquel appartient chaque fichier. Un ensemble de blocs, appelé ensemble de lancement, est toujours installé avant que le titre puisse s’exécuter. Les blocs restants sont installés pendant que le titre s’exécute. Des API permettent d’interroger la progression de l’installation des blocs et de modifier l’ordre d’installation des blocs qui ne sont pas encore installés. Dans cet article :- Étapes de la création de packages
- Étapes recommandées pour la création de packages pendant le développement
- Test des packages d’installation en continu
- Meilleures pratiques
- Échecs de création de packages causés par des connexions de données ouvertes
- Ressources et conseils
- Voir aussi
Étapes de la création de packages
Le processus de création de packages de MakePkg comprend plusieurs étapes.Validation de MicrosoftGame.config et de l’existence des fichiers
La commandemakepkg vérifie que le fichier MicrosoftGame.config du répertoire source du contenu est valide et peut être installé.
Lorsque vous exécutez la commande makepkg pack, elle s’assure que les fichiers référencés dans MicrosoftGame.config se trouvent dans le répertoire source. Elle valide que ces fichiers sont inclus dans le package pour l’ensemble de lancement. Cette validation inclut les binaires, les fichiers d’image et toute autre ressource.
Signature des binaires
XBOX Code Integrity (XCI) analyse et signe les fichiers de votre titre. Dans le cadre de ce processus, il modifie les en-têtes PE détectés dans les fichiers avant de les écrire dans le fichier de package. Si la signature échoue, un message d’erreur est signalé. Ce message inclut une commande permettant de réexécuter manuellement xcihash.exe pour obtenir plus de détails sur l’échec de la signature.Création du package
Dès que MakePkg termine les étapes de prévalidation, il crée un fichier de package. MakePkg copie ensuite les fichiers sources, y compris les exécutables signés, dans le fichier de package selon les blocs spécifiés par le fichier de mappage XML.Console seulement : la dernière étape de la création du package consiste à intégrer un fichier Game OS (GameOs.xvd). Ce fichier fait partie du Microsoft Game Development Kit (GDK) et doit se trouver dans le répertoire de disposition à côté de l’exécutable de votre jeu. L’indicateur
/gameos spécifie un autre emplacement source pour le fichier Game OS.Chiffrement
Signature de test (chiffrement par défaut)
Le comportement par défaut de MakePkg consiste à créer des packages signés pour les tests, ce qui correspond aussi à l’utilisation du commutateur/lt lors de l’appel de makepkg pack. La signature de test chiffre le fichier de package généré à l’aide d’une clé de chiffrement de test bien connue, destinée à la validation des tests de performances, pour l’exécution sur XBOX et PC. Bien que l’effet du déchiffrement en temps réel du package soit conçu pour être transparent pour le titre, cela garantit que tout problème de performances potentiel découlant du chiffrement est découvert avant la certification et la publication finale des titres. Les packages signés pour les tests ne sont pas destinés à sécuriser cryptographiquement le contenu, car le chiffrement utilise une clé fixe. Un package signé pour les tests peut être installé sur un kit de développement à l’aide de xbapp install et sur un PC de développement à l’aide de wdapp install.
Chiffrement par clé aléatoire (commutateur /l)
Le commutateur /l de MakePkg chiffre le fichier de package avec une clé de chiffrement générée aléatoirement. En plus du package de votre titre, MakePkg /l produit un fichier dont le nom suit le format PackageFullName_licenseName_GUID.EKB. (Notez l’utilisation du caractère de soulignement (_).) Les packages créés avec le commutateur /l ne peuvent pas être installés sur un kit de développement ou un PC de développement. Vous devriez tester votre titre à l’aide de packages signés pour les tests jusqu’à ce qu’il réussisse toutes les vérifications et tous les tests préalables à la soumission. Une fois cet état atteint, exécutez MakePkg avec le commutateur /l avant la soumission finale à Microsoft.
Recommandé : chiffrement par clé stable (Genkey + commutateur /lk)
Le commutateur/lk de Makepkg chiffre le package avec une clé stable (toujours la même) créée par la commande makepkg genkey. En plus du package de votre titre, makepkg /lk produit des fichiers dont les noms suivent les formats PackageFullName_licenseName_GUID.EKB et PackageFullName_licenseName_GUID.CEKB. (Notez l’utilisation du caractère de soulignement (_).) Les packages créés avec le commutateur /lk peuvent être installés sur un kit de développement, mais pas sur un PC de développement. Pour les PC, vous devriez tester votre titre à l’aide de packages signés pour les tests jusqu’à ce qu’il réussisse toutes les vérifications et tous les tests préalables à la soumission.
Il s’agit du mode de chiffrement recommandé pour les tests sur kit de développement et la soumission, en raison des avantages suivants :
- packageutil compare peut générer des estimations correctes de la taille des mises à jour (contrairement à /l).
- Il permet un téléversement delta sécurisé vers Partner Center à l’aide du même algorithme que celui utilisé par les consoles et les PC pour télécharger les mises à jour de contenu.
- Il peut être installé sur des devkits (contrairement à
/l). - Il utilise des éléments de clé de chiffrement sécurisés et ne peut être déchiffré que dans des environnements précis (contrairement à
/lt).
/lt et /l, le mode /lk nécessite une étape supplémentaire unique pour être utilisé :
- Une seule fois : exécutez
makepkg genkey /ekb SECRET_KEY.lekbpour créer le fichier SECRET_KEY.lekb. Il s’agit du Local Escrowed Key Blob (LEKB), qui stocke la clé de contenu stable qui chiffre votre package. Il doit être stocké dans un emplacement sécurisé, avec un accès limité aux personnes qui en ont besoin. Dans une configuration idéale, seuls les ordinateurs ou comptes de génération officiels devraient y avoir accès. - Création du package : exécutez
makepkg pack /lk SECRET_KEY.lekb .... Cela crée un package chiffré à l’aide de la clé stockée dans le fichier SECRET_KEY.lekb. - Téléversement du package : les fichiers XVC et EKB sont téléversés vers Partner Center comme d’habitude. Les fichiers LEKB et CEKB ne sont pas téléversés.
xbapp install installe automatiquement le fichier CEKB nécessaire pour charger le package sur un devkit XBOX. Si vous testez un scénario
d’installation autre que l’installation au moyen d’outils (disque de jeu, stockage externe, transfert de console à console), utilisez la commande xbapp installkey pour
installer uniquement le fichier CEKB.
peut en déchiffrer le contenu.
peut installer le package sur son devkit, le démarrer et en extraire les fichiers avec xbcp.
Validation de la soumission
MakePkg exécute automatiquement Submission Validator (SubmissionValidator.dll) sur les fichiers du titre après la création du package. L’objectif de Submission Validator est de détecter les erreurs et les problèmes susceptibles de causer des difficultés aux titres plus tard dans les processus d’ingestion, de soumission ou de certification chez Microsoft, ou dans les futures mises à jour de contenu. Vous devez corriger tous les problèmes détectés avant de pouvoir générer un package signé à téléverser vers Partner Center. Le processus de validation de la soumission génère un fichier journal XML détaillant la nature et l’emplacement de tout échec. Le processus écrit ce fichier journal au même emplacement que celui spécifié par le paramètre/pd de MakePkg pour la sortie du fichier de package. Ce journal peut contenir des échecs ou des avertissements. Vous devez corriger les échecs avant de pouvoir soumettre un package à Microsoft. Envisagez de corriger les avertissements pour vous assurer que les titres respectent la politique et les directives des XBOX Requirements (XR).
Lorsque vous téléversez un package vers Partner Center et le soumettez au processus d’ingestion, les vérifications de validation sont exécutées de nouveau. Ce processus garantit que le titre est vérifié à l’aide de la plus récente version de Submission Validator et que tout problème est détecté le plus tôt possible.
Tests de validation de la soumission
Les tests précis évoluent au fil du temps à mesure que Microsoft relève de nouveaux problèmes. La réussite des vérifications de Submission Validator ne doit pas être interprétée comme une indication qu’aucun autre problème ne surviendra lors de la soumission du titre pendant le processus d’ingestion et de certification. L’intention est plutôt simplement de réduire le temps et le coût des rejets découlant d’erreurs prévisibles. De plus, bien que Submission Validator puisse vérifier certains problèmes liés à la sécurité, il ne doit pas être considéré comme un test de sécurité pour un titre.
Vous pouvez télécharger la plus récente version de Submission Validator à partir du site XBOX Game Developer (XGD). Comme l’outil peut évoluer à un rythme différent de celui des versions du XBOX One Software Development Kit, assurez-vous d’utiliser la plus récente version pour éviter tout rejet pour échec de validation dans le processus de soumission. Pour obtenir la plus récente version, consultez XBOX Developer Downloads->XBOX One->Submission Validator.
Pour plus d’informations sur Submission Validator, consultez Submission Validator (SubmissionValidator.dll) dans la documentation du GDK.
Si vous avez des questions sur le processus de validation, communiquez avec votre représentant de compte Microsoft.
Étapes recommandées pour la création de packages pendant le développement
Pour créer des packages pendant le développement, suivez les étapes ci-dessous. Utilisezwdapp au lieu de xbapp lorsque vous ciblez un PC.
- Itérez localement à l’aide de packages signés pour les tests et de xbapp install à partir de votre PC de développement. MakePkg.exe pack /f Mapfile /d LooseContentDir /pd OutputFolder Pour commencer, consultez XBOX Developer Downloads.
- Exécutez votre titre en le lançant à partir de l’interpréteur de commandes ou à l’aide de xbapp launch. xbapp install local-XVC-path ou xbapp install http-URI Pour tester d’autres options d’installation en continu, consultez Test des packages d’installation en continu plus loin dans cet article.
- Testez l’installation du titre à partir du lecteur optique à l’aide d’un package signé pour les tests gravé dans le dossier racine d’un disque Blu-ray. Après avoir inséré le disque dans le kit de développement XBOX, exécutez la commande suivante. xbapp install XO:\XVC-file-name
-
Préparez votre soumission finale en utilisant la même commande de création de package que pour votre package signé pour les tests, mais ajoutez l’indicateur
/l.
Test des packages d’installation en continu (PC)
Utilisez la commandewdapp pour installer des packages sur le PC de test.
Actuellement, le package MSIXVC de test doit se trouver sur un lecteur physique du PC de test ou sur un serveur Web. Dans une future mise à jour, l’installation à partir de partages UNC (Universal Naming Convention) sera ajoutée.
Test des packages d’installation en continu (console)
Vous pouvez tester l’installation de packages d’installation en continu signés pour les tests de quatre façons.Diffuser en continu à partir du PC de développement
La diffusion en continu à partir du PC de développement ne prend en charge aucune limitation du débit. La vitesse de l’installation dépend des caractéristiques du processeur et des E/S de votre PC de développement, ainsi que de la bande passante de la connexion réseau entre le PC de développement et le kit de développement. Vous pouvez vous attendre à des vitesses de 300 Mbit/s (environ 36 Mio/s) ou plus sur des connexions Ethernet gigabit à partir de PC de développement modernes dotés de disques durs mécaniques. xbapp install dev-pc-path-to-XVC Installer au moyen de la ligne de commande Installer au moyen de XBOX ManagerHéberger le package sur un serveur Web
Si votre serveur Web prend en charge la configuration de la limitation de la bande passante, l’hébergement du package sur un serveur Web permet de simuler différentes vitesses de livraison réseau. La plateforme XBOX One gère les échecs de connexion et la logique de nouvelle tentative. Votre titre devrait s’exécuter de la même façon lors d’une installation à partir d’une source Internet qu’à partir d’un disque optique, à part la vitesse. xbapp install http-URI-to-package Installer au moyen de la ligne de commande Installer au moyen de XBOX ManagerGraver le package sur un disque, puis l’installer à partir d’une ligne de commande
Gravez un disque optique avec votre XVC dans le répertoire racine, puis installez le package à l’aide de la commande suivante. xbapp install XO:\XVC-file-nameGraver le package sur un disque, puis l’installer au moyen de l’interpréteur de commandes
Gravez un disque optique avec un dossier nommé MSXC qui contient votre package. Insérez le disque dans un kit de développement en cours d’exécution. L’interpréteur de commandes commence automatiquement l’installation de votre titre, et le kit de développement affiche une notification une fois l’ensemble de lancement installé, après quoi le titre peut être lancé.Meilleures pratiques
Utiliser les mises à jour de contenu au niveau des sous-fichiers
Utilisez les mises à jour de contenu au niveau des sous-fichiers, qui réduisent la taille des mises à jour de contenu. Concevez la disposition de votre package pour garantir des mises à jour de contenu optimales à l’avenir. Pour plus d’informations sur la conception de packages pour des mises à jour optimales, consultez Meilleures pratiques pour les mises à jour de contenu.Exigence XBOX 034 (XR-034 : marqueur de jeu initial de l’installation en continu)
L’inclusion d’un marqueur de jeu initial est facultative, mais fortement recommandée. Elle permet à un utilisateur d’exécuter le titre avant qu’il soit complètement installé, pendant que l’installation se poursuit en arrière-plan. Conformément à XR-034 : marqueur de jeu initial de l’installation en continu, les titres qui incluent un marqueur de jeu initial doivent offrir une expérience de jeu lorsqu’ils sont lancés à partir de ce marqueur.Tester votre titre
Testez votre titre pendant son installation à partir de diverses sources et à différentes vitesses.Utiliser la plus récente version de Submission Validator
Utilisez toujours la version la plus à jour de Submission Validator. La plus récente version de Submission Validator est disponible à partir de XBOX Developer Downloads->XBOX One->Submission Validator.Échecs de création de packages causés par des connexions de données ouvertes
Lorsque vous installez un package à l’aide dexbapp install /w, ou lorsque XBOX Manager installe un package avec l’option Keep data connection open activée (utilisée pour les scénarios Intelligent Delivery et de blocs à la demande), le canal de données entre la console et le fichier de package sur votre PC reste ouvert après la fin de l’installation. Cette connexion ouverte verrouille le fichier de package.
Si vous essayez de régénérer ou de recréer le package de votre titre pendant que ce canal est ouvert, makepkg échoue avec une violation de partage, car il ne peut pas écrire dans le fichier de package verrouillé.
Pour résoudre ce problème, fermez la connexion de données ouverte avant de régénérer :
- XBOX Manager : dans l’application XBOX Manager, trouvez le package installé et décochez l’option Keep data connection open, ou désinstallez et réinstallez le package sans activer cette option.
- xbapp install : omettez l’indicateur
/wlorsque vous n’avez pas besoin que le canal reste ouvert après l’installation. Utilisez/wseulement lorsque votre titre doit demander des blocs supplémentaires au moment de l’exécution pendant les tests de développement. - Fermer XBOX Manager : la fermeture complète de XBOX Manager libère tous les descripteurs de fichiers ouverts qu’il détient sur les fichiers de package.
Ressources et conseils
Pour plus d’informations, consultez les articles suivants :- Système > Vues d’ensemble > Installation en continu et Intelligent Delivery : vue d’ensemble
- Système > Vues d’ensemble > Installation en continu > Réorganisation dynamique des blocs
- Système > Vues d’ensemble > Installation en continu > Installation en continu : état
- Test, automatisation et publication > Outils > Installation en continu > Schéma de package de déploiement
- Test, automatisation et publication > Outils > Installation en continu > Make Package (makepkg.exe)
