Share via


Packages

Important

Although apps and games share similar instructions for this page, there are some sections and options that are only available to games. For game specific sections, use information on this page. For others, refer to the app's set of instructions.

When submitting a game to the Microsoft Store, your game must be packaged in a format that the devices recognize and can use. For PC titles, your game package needs to be in the MSIXVC format. For Xbox console titles, your game package is in the XVC format. For apps, they can be in MSIX, MSI, EXE, or PWA formats.

Create a game package

Instructions are specific for the type of game packages you need to build. This is based on the device family type. The device family availability selection in turn determines the customers who can view and download your title.

Device family Customers on these devices can download and play your game Upload package format Create package instructions
Xbox Xbox consoles XVC Create an XVC package as a managed Creator
Desktop Windows 10 or Windows 11 device family devices MSIXVC Create an MSIXVC package as a managed Creator

Note

The package type submitted must match the selection for device family availability. For more information, see Product setup overview.

Package version numbers

When creating a package, specify the version number in the Version attribute of the Identity element within your MicrosoftGame.Config file. You can use the same version number for each platform you support, and we recommend that you increment the version number for each new package that you create.

Important

If an MSIXVC package has been uploaded to your product in Partner Center and then published to any sandbox, new MSIXVC packages that use the same version number won't upload successfully. Always use a new version number for each MSIXVC package you create.

Generating a Submission Validator log file

Submission Validator is a component of the Microsoft Game Development Kit (GDK) that runs a series of basic quality checks on a title or app package. Submission Validator isn't a standalone tool that the developer uses. Rather, it's automatically called to check a game whenever the makepkg pack command is used. Submission Validator is included with the GDK, and updates to Submission Validator are available for download from Microsoft Game Dev - Game Development Resources.

Submission Validator runs after the title package is created. Failures and warnings in the validation are recorded in the validation log, which is written to the output location that's specified on the makepkg command line. This is the same output location where the finished title package is created. A localized version of the output is also available (in addition to the English output) at the same location if the /validationlanguage parameter is set on makepkg. The current additional supported validation language is ja-jp.

A subset of Submission Validator tests can be run before title package creation by running the makepkg validate command line. We recommend running it to catch issues before package creation.

If failures or warnings are listed in the validation log, these must be resolved before your package is submitted for Certification. For more information, see Submission Validator - Understanding the results log.

Upload packages in Partner Center

After creating packages for your game, upload them to Partner Center to prepare them for Xbox Certification and publishing.

Using branches for packages

Use branches to work with multiple versions of your packages simultaneously. For example, you can certify your current stable build while publishing different builds to your development sandbox for internal testing. Branches can be published to any development sandbox. However, only the Main branch can be published to the RETAIL sandbox. To create a new branch, select the + icon on the branch navigation. After creating a branch, you can use the Import functionality to copy a package between branches at any time.

Each branch of each module will have a History button near the upper-right corner. Click History to view the user, date, time, and other details of the actions taken in the branch.

Configuring market-specific packages

If your game supports separate packages for different release markets, use the Add market-specific packages UI to make these assignments. The UI will guide you through creating and naming the market group. After creating the group, you can upload the package for each market group accordingly.

Required package files for Game products

For each platform, multiple files are requested after you upload your game package to your product in Partner Center:

  • EKB is required for successful package re-encryption and publishing. Your XVC or MSIXVC package upload won't progress until the EKB is uploaded.
  • Submission Validator Log is required for Xbox Certification and for validation of your package. The log must display an overall pass result, or you must have approved exceptions for any issues tagged as failure in the file. You should also check the log file for any issues tagged as warning and make sure the warnings are expected. Always ensure that you're using the latest version of Submission Validator. An error with instructions to update will be displayed in the log if the version you're using has expired.
  • Symbols allows an optional .zip folder upload for comprehensive crash dump reporting.
  • Disc layout file should only be provided if the submitted package will be mastered to disc, specifically for multi-disc releases or where your package has optional files for installation.

Note

The disc layout file is different to the layout.xml file generated by makepkg that specifies your package's chunk layout. Don't upload this layout.xml file to the disc layout.

Specifying a custom availability and predownload date

For your base release, the package is available for download immediately when you publish it. It's only accessible per the product's pricing and availability configuration.

To define the date and time that you require a Content Update (CU) to be available for players, use the Configure custom availability date for your XVC/MSIXVC packages setting. There are two date fields to fill out. Select the Availability Date that specifies when the CU becomes mandatory for the user to take. Select the Predownload Date that specifies when the CU will predownload on the user’s consoles. When the Predownload Date has passed, the console will background download the update package. Then on the Availability Date, the console will apply the update. This is beneficial to users as they do not have to sit through downloading the CU on the Availability Date but instead will be able to jump right into their game since the CU was pre-downloaded earlier. For the best user experience the Predownload Date should be at least 48 hours before the Availability Date.

If you set the Availability and predownload date to the same date, or don’t set a predownload at all, the package will be published and be mandatory on the Availability Date. Not setting an Availability Date when you publish will make the package immediately available. If you have market-specific packages, you can configure an availability and predownload date and time for each package separately.

Note

For XVC packages, updates are always mandatory. Updates to PC MSIXVC packages aren't considered mandatory by default. To enforce mandatory updates to your PC games, see XStoreQueryGameAndDlcPackageUpdatesAsync.

Certifying packages

Note

Before submitting any packages to Certification, complete the Certification questionnaire for the product by selecting Certification from the product's page navigation.

You can use Certify in any branch of the Packages UI to submit your packages into the Xbox Certification workflow. The following options are available when you certify a package. They might apply, depending on your submission type.

  • Select Optional certification (feedback only) to indicate if this is an Optional submission of any type. This alerts various teams to the non-Final intent and will ensure that testing is carried out appropriately. Optional submissions can't be released to RETAIL. Any packages targeting Optional Certification must be resubmitted through Final Certification before they can be released. For more information, see Optional Certification.

  • Select Intended for discs if the package you are certifying is also going to be manufactured on disc. After selecting this, ensure that you submit a disc request. For more information, see Creating Discs.

  • Select Apply full certification pass to these packages (for full game release) if you're currently in the Xbox Game Preview program and intend to use the package to transition out of the Xbox Game Preview program. This opts you into full Xbox Requirement (XR) testing on the submission.

Note

When using Certify for the Packages module, the Properties and Age Ratings modules are also submitted. You must also select a source for your Xbox services gameplay settings and it's recommended that the source you select contains the version of your configuration that you intend to publish to the RETAIL sandbox. If no changes have been made to your Xbox services configuration, select a previously published source. For example, CERT-Publish.

For more information, see Submitting to Certification.

Flighting packages

Packages can be made available to specific audiences using a Package Flight. Audiences for a Package Flight depend on the platform that you are flighting for.

  • Console package flights will use a Known Device Group
  • PC package flights will use a Known User Group

For more information about creating flight branches and managing the packages flighted to specific audiences, see Package Flights.

See also