Skip to main content

Pacotes de Publisher Content

Publisher Content é um tipo de pacote que permite hospedar conteúdo complementar do jogo na sua própria rede de distribuição de conteúdo (CDN), enquanto a plataforma continua gerenciando a instalação, o download em segundo plano, a validação de integridade e a experiência do usuário. Os pacotes de Publisher Content têm suporte em consoles da família XBOX One e em consoles XBOX Series X|S a partir do GDK de outubro de 2026 (GDK 2610). Os pacotes de Publisher Content se comportam como conteúdo para download (DLC) em tempo de execução: eles são instalados junto com um jogo base, são montados no seu processo e desmontados quando o jogo é encerrado. Diferentemente do DLC, eles não são ingeridos pelo Partner Center, não têm ID da loja e não são vendidos nem licenciados pela Microsoft Store. O seu serviço é a fonte da verdade sobre qual conteúdo é distribuído, quando ele é atualizado e quem o recebe.

Quando usar o Publisher Content

Considere usar o Publisher Content quando quiser fazer qualquer uma das seguintes ações:
  • Distribuir pequenas atualizações de serviço ao vivo (dados de configuração, tabelas de ajuste, pequenos pacotes de ativos) sem passar pela ingestão da Store.
  • Entregar conteúdo complementar com a marca do editor que todos os jogadores do jogo base recebem automaticamente.
  • Reutilizar uma CDN e um pipeline de conteúdo existentes que você já opera para seus jogos em outras plataformas.
  • Manter o controle sobre o momento da distribuição, a segmentação regional ou os testes A/B na camada da CDN.
O Publisher Content não substitui o DLC. Continue usando pacotes de DLC padrão quando precisar de direitos de uso por usuário, fluxos de compra ou licenciamento da Microsoft Store.

Requisitos e restrições

  • Um pacote de Publisher Content por jogo base.
  • Disponível para qualquer jogador que possua o jogo base. Não há verificação de licenciamento por usuário.
  • Com suporte em consoles da família XBOX One e em consoles XBOX Series X|S.
  • O jogo base e o pacote de Publisher Content devem usar o mesmo formato de pacote. Por exemplo, se o jogo base for empacotado como MSIXVC2, o pacote de Publisher Content também deverá ser MSIXVC2.
  • O pacote de Publisher Content deve ser pequeno, ou seja, ter menos de 1 GB.
  • O pacote de Publisher Content é assinado com material de assinatura fornecido pelo editor, e o jogo base incorpora o material público correspondente para que a plataforma possa validar o Publisher Content que alega pertencer a ele. O próprio jogo base é assinado da mesma forma que qualquer outro título. O material de assinatura varia de acordo com o formato do pacote:
    • XVC e MSIXVC — Uma chave de assinatura CNG bruta. RSA-4096 é obrigatório.
    • MSIXVC2 — Um certificado X.509 com uma chave RSA-4096. O certificado deve estar válido no momento, ter uma chave privada RSA acessível e permitir assinaturas digitais.
A plataforma não oferece sigilo de conteúdo para pacotes de Publisher Content. Diferentemente do DLC da Microsoft Store, o Publisher Content não é criptografado para distribuição: qualquer pessoa que baixar o arquivo da sua CDN poderá inspecionar o conteúdo dele. Se você precisar de confidencialidade para partes da sua carga, criptografe essas partes dentro do próprio conteúdo antes do empacotamento.

Como as partes se encaixam

De modo geral:
  1. Você declara uma URL de manifesto no seu jogo base em MicrosoftGame.config. Essa URL aponta para um pequeno arquivo JSON que você hospeda na sua CDN e pode atualizar a qualquer momento.
  2. Você cria um pacote de Publisher Content que faz referência ao jogo base pelo ID da loja.
  3. Você assina o pacote de Publisher Content com o seu material de assinatura de editor. O jogo base incorpora o material público correspondente para que a plataforma possa validar qualquer Publisher Content que alegue pertencer a ele.
  4. Quando um jogador instala o jogo base, a plataforma busca o seu manifesto, lê a URL da CDN do pacote de Publisher Content atual e coloca a instalação dele na fila.
  5. Em tempo de execução, o seu jogo enumera os pacotes instalados e monta o pacote de Publisher Content da mesma forma que montaria um DLC.
Para distribuir uma nova revisão do conteúdo, carregue um novo pacote na sua CDN e atualize o seu manifesto para apontar para ele. A plataforma detecta a alteração na próxima verificação de atualizações.

Configurar o seu jogo base

No arquivo MicrosoftGame.config do seu jogo base, adicione um elemento PublisherContent com um filho ManifestUrl. A URL deve estar acessível a todos os dispositivos que executam o seu jogo.
Para obter mais informações sobre esses elementos, consulte Elemento PublisherContent (MicrosoftGame.config) e Elemento ManifestUrl (MicrosoftGame.config).

Criar o pacote de Publisher Content

Crie um MicrosoftGame.config junto com a carga do seu Publisher Content. Faça referência ao jogo base pelo ID da loja com o elemento PublisherContentBaseProduct.
Para obter mais informações, consulte Elemento PublisherContentBaseProduct (MicrosoftGame.config).
Não inclua um elemento AllowedProducts em um pacote de Publisher Content. Esse elemento identifica um pacote como DLC padrão e é mutuamente exclusivo com PublisherContentBaseProduct.

Criar o manifesto

Hospede um pequeno manifesto JSON na ManifestUrl que você declarou no jogo base. O manifesto contém um único campo url que aponta para o pacote de Publisher Content atual na sua CDN. Não altere o Publisher Content na URL depois de publicado; em vez disso, publique cada nova versão do pacote de Publisher Content em uma nova URL e atualize o manifesto de acordo.

Gerar o material de assinatura do editor

O material de assinatura do editor fica no seu computador de build e é referenciado pelo nome (ou impressão digital) quando o makepkg empacota o jogo base e o pacote de Publisher Content. A forma exata depende do formato de pacote de destino.
Trate a chave de assinatura do editor ou a chave privada do certificado como um segredo de produção. Qualquer pessoa com acesso ao material privado pode produzir pacotes de Publisher Content que a plataforma aceitará como vindos de você.

Para pacotes XVC e MSIXVC

Crie uma chave de assinatura RSA-4096 em um provedor de armazenamento de chaves CNG do Windows no computador de build. O exemplo do PowerShell a seguir cria uma chave de assinatura RSA-4096 exportável chamada MyTestPubXvcSigningKey no Microsoft Software Key Storage Provider.
Passe o nome da chave resultante para makepkg pack por meio de /usepublisherkey. Se você usar um provedor de armazenamento de chaves CNG diferente do padrão, passe também o nome dele por meio de /publisherkeyprovider.

Para pacotes MSIXVC2

Crie um certificado X.509 cuja chave de entidade seja uma chave RSA-4096 e instale o certificado e a chave privada dele no repositório de certificados CurrentUser\My. O exemplo do PowerShell a seguir cria um certificado RSA-4096 autoassinado em CurrentUser\My e exporta o arquivo .cer dele.
Passe o caminho do .cer exportado ou a impressão digital do certificado para makepkg pack por meio de /usepublishercert. Se o certificado estiver instalado em um repositório diferente de My, passe também o nome dele por meio de /publishercertstore.

Empacotar o jogo base e o Publisher Content

As duas invocações de pack devem fazer referência à mesma chave ou ao mesmo certificado.

Para pacotes XVC e MSIXVC

Empacote o jogo base:
Empacote o Publisher Content:
Se você usar um provedor de armazenamento de chaves CNG diferente do Microsoft Software Key Storage Provider, adicione /publisherkeyprovider <providername> aos dois comandos.

Para pacotes MSIXVC2

Empacote o jogo base:
Empacote o Publisher Content:
Se o certificado estiver instalado em um repositório diferente de CurrentUser\My, adicione /publishercertstore <store> aos dois comandos. Para obter detalhes, consulte Criar pacote (makepkg.exe).

Publicar e atualizar

Os pacotes de Publisher Content são hospedados na sua CDN e não podem ser carregados no Partner Center. O makepkg upload rejeita pacotes de Publisher Content tanto na forma solta quanto empacotada. O pacote do jogo base é carregado normalmente pelo fluxo padrão do Partner Center.
  1. Carregue o XVC de Publisher Content empacotado na sua CDN, na URL que você referenciou no seu manifesto.
  2. Carregue o JSON do seu manifesto na URL que você declarou no elemento ManifestUrl do jogo base.
  3. Envie e distribua o jogo base pelo Partner Center normalmente.
Para distribuir uma atualização:
  1. Carregue o novo pacote de Publisher Content na sua CDN em uma nova URL. Não substitua o pacote de Publisher Content antigo.
  2. Atualize o valor de url no manifesto para apontar para o novo pacote.
  3. Carregue o arquivo JSON atualizado na URL que você declarou no elemento ManifestUrl do jogo base.
Os dispositivos instalados detectam a alteração na próxima verificação de atualizações e baixam o novo pacote de Publisher Content em segundo plano.

Acessar o Publisher Content em tempo de execução

Em tempo de execução, descubra o Publisher Content instalado da mesma forma que você descobre o DLC: usando XPackageEnumeratePackages e, em seguida, montando o pacote retornado com XPackageMountWithUiAsync. Passe XPackageKind::PublisherContent para filtrar a enumeração somente para Publisher Content:
Se você já tiver um identificador de pacote de outra origem, use XPackageGetPackageKind para determinar se ele se refere a um pacote de Publisher Content:
Como o Publisher Content não é licenciado pela Microsoft Store, você não precisa chamar XStoreQueryPackageIdByKind nem executar uma verificação de licença da loja antes da montagem.

Comportamento de desinstalação

Quando um jogador desinstala o jogo base, a plataforma desinstala automaticamente o pacote de Publisher Content associado. Você não precisa removê-lo explicitamente no código do seu jogo.

Confira também

Last modified on October 6, 2026