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

# Criar discos de teste

> Criar discos de teste

<Note>Estas instruções destinam-se apenas a testes. Em cenários de varejo, esses dados são configurados automaticamente de acordo com os metadados no Partner Center. As opções selecionadas no fluxo de criação de discos de compilação são usadas para controlar a ordem de instalação, a reprodução automática e muito mais. Você não nos envia diretamente os metadados de teste nem os arquivos de configuração JSON quando envia seus jogos para ingestão.</Note>

Este tópico explica como criar discos de teste. Você pode criar os seguintes tipos de discos de teste.

* [Compilações](#ID4E1)
* [Vários discos](#ID4EBE)

<a id="ID4E1" />

## Compilações

### Criar um disco de compilação de teste

Para criar e testar um disco de compilação, você precisa criar um arquivo de metadados catalog.js e um layout de disco, conforme descrito a seguir.

* [Criar um layout de disco](#ID4EGB)
* [Catalog.js](#ID4EMC)
* [Ordem de instalação e notificações](#ID4ELD)
* [Implantação](#ID4EYD)

<a id="ID4EGB" />

### Criar um layout de disco

Crie um layout de disco semelhante ao exemplo a seguir.

```
- Disc Root
    - Licenses (folder) - (Not needed for Xbox One ERA Development Kits - make sure to use XVCs created with /LT flag)
        License0.xml (file) - (Not needed for Xbox One ERA dev kits - make sure to use XVCs created with /LT flag)
    - MSXC (folder)
        - Package1.xvc (file)
        - Package2.xvc (file)
        - Metadata (folder)
            - catalog.js (file)
            - Bundle (folder)
                - Bundle images (files)
            - Package1.xvc (folder)
                - Package 1 images (files)
            - Package2.xvc (folder)
                - Package 2 images (files)  
```

Em que os diretórios têm o seguinte conteúdo:

* **Licenses** contém os arquivos de licença dos jogos. Essas informações não são necessárias para kits de desenvolvimento ERA do XBOX One. Certifique-se de usar XVCs criados com o sinalizador **/LT**. Depois disso, eles podem ser omitidos.

* **MSXC** contém os jogos empacotados e os metadados usados pelo shell do XBOX.

* **Metadata** contém os metadados que o shell usa para os jogos no disco e para os pacotes de jogos.

* **Bundle** contém imagens usadas pelo shell.

* **Package1.XVC** contém imagens usadas pelo shell para o primeiro jogo. O nome deve corresponder ao do arquivo de pacote do jogo em MSXC.

* **Package2.XVC** contém imagens usadas pelo shell para o segundo jogo. O nome deve corresponder ao do arquivo de pacote do jogo em MSXC.

<a id="ID4EMC" />

### Catalog.js

Na pasta Metadata, crie um arquivo chamado catalog.js. Edite esse arquivo para refletir os nomes dos seus pacotes e imagens nas outras pastas. Esse arquivo deve ter codificação UTF-16 LE. Recomendamos usar um validador de JSON na Web. Para garantir que o JSON seja válido, copie-o para um editor de texto e salve o arquivo no formato UTF-16 LE.

<a id="ID4ESC" />

##### Exemplo de um arquivo catalog.js para um cenário com vários jogos, com comentários

```js theme={null}
{
  "version": "4.1",                                        // Don't adjust this value.
  "bundle": {
    "oneStoreProductId": "9P436MXJ71GV",                   // Replace with your bundle product id.
    "titles": [
      {
        "locale": "default",
        "title": "Bundle Title"                            // Replace with bundle title.
      }
    ],
    "images": [
      {
        "size": "100x100",                                 // Don't change the size values.
        "image": "100x100_1.png"                           // Must match the image file names in MSXC\Metadata\Bundle\
      },
      {
        "size": "208x208",
        "image": "208x208_1.png"
      },
      {
        "size": "480x480",
        "image": "480x480_1.png"
      }
    ]
  },
  "packages": [                                             // This is an array of packages.
    {
      "packageName": "Package1.xvc",                        // Match your package name in MSXC\<package name> and MSXC\Metdata\<package name>
      "oneStoreProductId": "BX38WRFV50MJ",                  // Product id for package 1.
      "contentId": "2b05043b-4043-4ba0-80ed-fd4811c4b333",  // Content id for package 1.  Must match the content id of the package file.
      "franchiseGameHubId": "47445142-3636-3036-C048-464D4E574000", // Optional; Replace with the FranchiseGameHubId. This marks the package as a game hub
      "titleId": "037C3A1D",                                // Title id for package 1.
      "titles": [
        {
          "locale": "default",
          "title": "Killer Instinct"                        // Package 1 title.
        }
      ],
      "images": [
        {
          "size": "100x100",
          "image": "100x100_1.png"                          // Match file names in MSXC\Metadata\<Package1>\
        },
        {
          "size": "208x208",
          "image": "208x208_1.png"
        },
        {
          "size": "480x480",
          "image": "480x480_1.png"
        }
      ],
      "ratings": [
        {
          "system": "OFLC",
          "value": "M"
        },
        {
          "system": "DJCTQ",
          "value": "14"
        },
        {
          "system": "PCBP",
          "value": "Unrated"
        },
        {
          "system": "USK",
          "value": "16"
        },
        {
          "system": "ESRB",
          "value": "T"
        },
        {
          "system": "CERO",
          "value": "Unrated"
        },
        {
          "system": "CSRR",
          "value": "Unrated"
        },
        {
          "system": "COB",
          "value": "M"
        },
        {
          "system": "GRB",
          "value": "Unrated"
        },
        {
          "system": "PEGI",
          "value": "16"
        },
        {
          "system": "PEGIPortugal",
          "value": "Unrated"
        }
      ],
      "type": "Game"
  },
  {
    "packageName": "Package2.xvc",
    "oneStoreProductId": "BVC818MXZ6KG",
    "contentId": "4a6cb1d0-5ad3-47b7-9583-7480098b4a26",
    "associatedFranchiseGameHubId": "47445142-3636-3036-C048-464D4E574000", // Replace with the FranchiseGameHubId of the corresponding franchise game hub that this package is launched with. Optional;
    "titleId": "669E1864",
    "titles": [
      {
        "locale": "default",
        "title": "LocoCycle"
      }
    ],
    "images": [
      {
        "size": "100x100",
        "image": "100x100_1.png"
      },
      {
        "size": "208x208",
        "image": "208x208_1.png"
      },
      {
        "size": "480x480",
        "image": "480x480_1.png"
      }
    ],
    "ratings": [
      {
        "system": "OFLC",
        "value": "PG"
      },
      {
        "system": "DJCTQ",
        "value": "10"
      },
      {
        "system": "USK",
        "value": "12"
      },
      {
        "system": "ESRB",
        "value": "T"
      },
      {
        "system": "PEGI",
        "value": "12"
      },
      {
        "system": "COB",
        "value": "PG"
      }
    ],
    "type": "Game"
    }
  ]
}  
```

<a id="ID4EAD" />

##### Exemplo de catalog.js para um cenário de jogo e conteúdo para download (DLC)

```js theme={null}
{
  "version": "4.0",                                        // Don't adjust this value.
  "bundle": {
    "oneStoreProductId": "9P436MXJ71GV",                   // Replace with bundle product id.
    "launchPackage": "Package3.xvc",                       // Should be the package name of the game package.  This is the package that is launched when the game disc is inserted.
    "titles": [
      {
        "locale": "default",                                        
        "title": "Game + DLC Bundle Title"                 // Replace with bundle name.
      }
    ],
    "images": [
      {
        "size": "100x100",
        "image": "100x100_1.png"                           // Must match the image file names in MSXC\Metadata\Bundle\
      },
      {
        "size": "208x208",
        "image": "208x208_1.png"
      },
      {
        "size": "480x480",
        "image": "480x480_1.png"
      }
    ]
  },
  "packages": [
    {
      "packageName": "Package1.xvc",                       // Match folder name in MSXC\Metadata\<folder name>
      "oneStoreProductId": "BX38WRFV50MJ",                 // Replace with DLC 1 product id.
      "contentId": "ace6ef3b-0c5b-4f17-a651-390e75169d5c", // Replace with DLC 1 content id. This must match the content id of the package file.
      "allowedOneStoreProductIds": [
        "BVC818MXZ6KG"                                     // Should match the product id of the game that will load this DLC.
      ],
      "titles": [
        {
          "locale": "default",
          "title": "DLC Title 1"
        }
      ],
      "images": [
        {
          "size": "100x100",
          "image": "100x100_1.png"                         // Match file names in MSXC\Metadata\Package1.xvc\
        },
        {
          "size": "208x208",
          "image": "208x208_1.png"
        },
        {
          "size": "480x480",
          "image": "480x480_1.png"
        }
      ],
      "ratings": [
        {
          "system": "ESRB",
          "value": "E"
        }
      ],
      "type": "Durable"                                    // Indicates that this is a DLC package.
    },
    {
      "packageName": "Package2.xvc",
      "oneStoreProductId": "9P436MXJ71GV",
      "contentId": "b0f77189-d74c-4005-b351-955d380cb875",
      "allowedOneStoreProductIds": [
        "BVC818MXZ6KG"
      ],
      "titles": [
        {
          "locale": "en-US",
          "title": "DLC Title 2"
        }
      ],
      "images": [
        {
          "size": "100x100",
          "image": "100x100_1.png"
        },
        {
          "size": "208x208",
          "image": "208x208_1.png"
        },
        {
          "size": "480x480",
          "image": "480x480_1.png"
        }
      ],
      "ratings": [
        {
          "system": "ESRB",
          "value": "E"
        }
      ],
      "type": "Durable"
    },
    {
      "packageName": "Package3.xvc",
      "oneStoreProductId": "BVC818MXZ6KG",
      "contentId": "5519355c-bff9-40b4-92bb-b5473fd9c577",
      "titleId": "35c8f637",
      "titles": [
        {
          "locale": "default",
          "title": "Game Title"
        }
      ],
      "images": [
        {
          "size": "100x100",
          "image": "100x100_1.png"
        },
        {
          "size": "208x208",
          "image": "208x208_1.png"
        },
        {
          "size": "480x480",
          "image": "480x480_1.png"
        }
      ],
      "ratings": [
        {
          "system": "ESRB",
          "value": "E"
        }
      ],
      "type": "Game"                                       // Indicates main game package.
    }
  ]
}  
```

<a id="ID4ELD" />

### Ordem de instalação e notificações

As notificações de instalação de DLC geralmente são disparadas quando um pacote de DLC conclui uma instalação. Para certos tipos de discos de jogos, há casos em que isso não é desejado, pois criaria um grande número de notificações em um tempo muito curto. Por exemplo, uma edição Jogo do Ano pode incluir um grande número de pequenos pacotes de DLC no disco. Para lidar com essa situação, as notificações de DLC são disparadas somente quando o jogo ao qual elas se aplicam já está instalado.

Para jogos com um grande número de pequenos pacotes de DLC, recomendamos que os pacotes no disco sejam ordenados de modo que o DLC seja instalado antes do jogo. Isso garante que o usuário não seja inundado com notificações quando os pacotes de DLC forem instalados.

Para jogos com um pequeno número de pacotes de DLC grandes, recomendamos que o DLC seja instalado após o jogo principal, para garantir que o usuário não fique impedido de jogar até que todos os pacotes de DLC sejam instalados.

Para controlar a ordem em que o DLC e o jogo são instalados, basta ajustar a ordem deles na matriz JSON *Packages* em catalog.js. É essa matriz que controla a ordem padrão de instalação.

<a id="ID4EYD" />

### Implantação

Para implantar o disco de compilação, grave a estrutura de diretórios em um disco. Quando você insere o disco em um kit de desenvolvimento, ele é iniciado exatamente como uma versão de lançamento seria em um console de varejo.

<a id="ID4EBE" />

## Vários discos

Para criar discos de teste múltiplos, divida seu XVC existente em dois arquivos.

<Note>Os XVCs só podem ser divididos nos limites de partes individuais, conforme definido no seu arquivo Layout.xml. Pode ser impossível publicar XVCs que tenham partes extremamente grandes (maiores que 45 GB) usando o recurso de vários discos. Em geral, é melhor manter as partes do seu título menores que 45 GB.</Note>

Para dividir um XVC em dois discos, crie um arquivo DiscLayout.xml semelhante ao seguinte.

```xml theme={null}
<Packages>
  <Package Name="MultiDisc" Description="Package published on 2 discs" MaxDiscs="2">
  </Package>
</Packages>  
```

Em seguida, invoque o SplitPkg para produzir os arquivos individuais que serão gravados no disco. Isso produzirá dois arquivos com o nome do seu arquivo XVC original acrescido dos sufixos ".MultiDisc.1" e ".MultiDisc.2".

```
SplitPkg /f DiscLayout.xml /p sourceXVC /s Multidisc /pd outputDir  
```

Para simular a instalação a partir de vários discos, use `xbapp install` para o disco 1 e `xbapp install` para o disco 2. Depois que o conteúdo do disco 1 for instalado, o console solicitará que você insira o disco 2.

<a id="ID4ENF" />

### Catalog.js

Para gravar esses discos de teste, crie um arquivo Catalog.js com os novos campos **discNumber**, **discCount** e **discSetId**. Observe que *todos* os discos precisam de todos esses metadados. A única diferença entre os arquivos Catalog.js de cada disco é o valor do campo **discNumber**. Por exemplo, o disco 1 deve ter o valor 1 e o disco 2 deve ter o valor 2. Zero (0) é um valor reservado e não deve ser usado.

<a id="ID4E5F" />

#### Exemplo de Catalog.js para vários discos

```json theme={null}
{
  "version": "4.0",                                         // Don't adjust this value.
  "discNumber": 1,                                          // 1 for disc 1, 2 for disc 2.
  "discCount": 2,                                           // Same on all discs.
  "discSetId": "00000001",                                  // For test purposes, this can be 00000001. On retail discs, this value is unique for each published disc set. 
                                                            // Don't mix installations of test discs from different sets if they share this value. Cancel your installation before starting a new one.
  "packages": [                                             // This is an array of packages.
    {
      "packageName": "Package1.xvc",                        // Match your package name in MSXC\package-name and MSXC\Metdata\package-name
      "oneStoreProductId": "BX38WRFV50MJ",                  // Product id for package 1.
      "contentId": "2b05043b-4043-4ba0-80ed-fd4811c4b333",  // Content id for package 1. Must match the content id of the package file.
      "titleId": "037C3A1D",                                // Title id for package 1.
      "titles": [
      {
        "locale": "default",
        "title": "Killer Instinct"                          // Package 1 title.
      }
    ],
    "images": [
      {
        "size": "100x100",
        "image": "100x100_1.png"                            // Match file names in MSXC\Metadata\Package1\
      },
      {
        "size": "208x208",
        "image": "208x208_1.png"
      },
      {
        "size": "480x480",
        "image": "480x480_1.png"
      }
    ],
    "ratings": [
      {
        "system": "OFLC",
        "value": "M"
      },
      {
        "system": "DJCTQ",
        "value": "14"
      },
      {
        "system": "PCBP",
        "value": "Unrated"
      },
      {
        "system": "USK",
        "value": "16"
      },
      {
        "system": "ESRB",
        "value": "T"
      },
      {
        "system": "CERO",
        "value": "Unrated"
      },
      {
        "system": "CSRR",
        "value": "Unrated"
      },
      {
        "system": "COB",
        "value": "M"
      },
      {
        "system": "GRB",
        "value": "Unrated"
      },
        {
        "system": "PEGI",
        "value": "16"
      },
      {
        "system": "PEGIPortugal",
        "value": "Unrated"
      }
    ],
      "type": "Game"
    }
  ]
}  
```

## Confira também

* [Criar discos de teste entre gerações](/pt-BR/build/core-features/common/packaging/creating-cross-gen-test-discs)
* [Criar discos](/pt-BR/build/core-features/common/packaging/creating-discs)
* [Funcionalidade de vários discos](/pt-BR/build/core-features/common/packaging/packaging-multi-disc)
* [Hubs de jogos de franquia](https://learn.microsoft.com/build/store/franchise-game-hubs)


## Related topics

- [Guia passo a passo da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-guide.md)
- [Etapas do teste de validação de mídia](/pt-BR/publishing/game-publishing/concepts/certification/certification-media-validation-test-steps.md)
- [Casos de teste com mais falhas](/pt-BR/publishing/certification/xr-top-failing.md)
- [Políticas e Requisitos do XBOX](/pt-BR/publishing/certification/overview.md)
- [XR-132 Limitações de acesso aos serviços](/pt-BR/publishing/certification/xr/xr-132.md)
