Direitos
Quando os direitos não corresponderem à atividade de compra de um jogador, verifique os seguintes casos:- Se você estiver testando em uma área restrita de desenvolvimento no PC, as contas de teste XBOX devem entrar no aplicativo XBOX antes de entrar na Microsoft Store. Se uma conta de teste entrar primeiro na Microsoft Store, a Microsoft Store usará o ambiente RETAIL por padrão.
- Os direitos de pré-venda ficam inativos até a data de lançamento e não são retornados em consultas de direitos baseadas no cliente.
- Garanta que as contas de teste estejam restritas a compras em uma única área restrita. O serviço de coleções pode retornar resultados inválidos se a conta tiver direitos em várias áreas restritas.
- Se você estiver testando em uma área restrita de desenvolvimento no console, um direito é concedido imediatamente para um produto gratuito depois de selecionar o botão Get na página de detalhes do produto na Microsoft Store ou quando o jogo chama XStoreShowPurchaseUIAsync. O direito é concedido mesmo que a compra seja anulada. Para evitar a concessão automática de direitos, publique o conteúdo de complemento com um preço diferente de zero na área restrita.
Licenciamento
Quando uma licença for adquirida para um conteúdo que o jogador não possui, verifique se não está ocorrendo compartilhamento ou cache de licenças no dispositivo.- O compartilhamento e o cache de licenças podem deixar as máquinas de teste em um estado não limpo.
- Remover contas de um dispositivo não remove a designação ‘offline’ delas. As licenças com capacidade offline continuam sendo compartilhadas com outras contas até que a designação seja alterada ou as licenças expirem.
- Quando uma nova conta é adicionada a um PC, a configuração ‘Permissões offline’ pode ser habilitada automaticamente para a conta, o que pode causar compartilhamento inesperado de licenças.
- Para garantir um ambiente de PC limpo, sempre teste em uma Máquina Virtual nova.
- Para retornar o console a um estado limpo, tente as seguintes etapas:
- Desabilite o ‘XBOX Doméstico’ (Configurações > Geral > Personalização > Meu XBOX doméstico) para cada conta de teste antes de removê-las do dispositivo.
- Execute ‘Redefinir XBOX doméstico’ (Configurações > Desenvolvedor > Configurações do Desenvolvedor) várias vezes (15+) para remover a designação do dispositivo para contas mais antigas e, em seguida, reinicie o console.
- Se as licenças continuarem sendo compartilhadas, talvez seja necessária uma redefinição de fábrica.
O retorno de chamada atribuído em XPackageRegisterPackageInstalled não é acionado quando o DLC (Durável com pacote) é instalado
Se o estado de instalação do DLC não for óbvio, primeiro verifique xbapp listdlc ou wdapp listdlc para confirmar que o DLC esperado está listado.
Em seguida, verifique se o AllowedProduct no microsoftgame.config do DLC corresponde ao nó StoreId do jogo base no microsoftgame.config dele
Se esse DLC for um produto Smart Delivery e o jogo base do XBOX Series X/S estiver usando um pacote de DLC ERA, e o AllowedProduct no appxmanifest do DLC ERA não for igual à ID do produto atribuída ao jogo base do XBOX Series X/S (xbapp list /d), talvez seja necessário substituir a ID do produto. Essa substituição só é possível para um build empacotado:
XStoreShowPurchaseUIAsync no PC mostra a caixa de diálogo de compra brevemente e depois retorna E_ABORT
Esse problema pode ocorrer quando:
- XStoreShowPurchaseUIAsync é chamado a partir de um processo elevado (Administrador).
- Você está depurando no Visual Studio com privilégios de Administrador ou a partir de qualquer processo definido para Executar como Administrador. A solução é evitar chamar essa API ao executar como Administrador.
- O UAC (Controle de Conta de Usuário) está configurado para não exibir o prompt de confirmação na área de trabalho do usuário interativo.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\PromptOnSecureDesktop
EnableLUA deve ser 1. Em alguns casos, alternar PromptOnSecureDesktop para 0 também pode ser eficaz.
Esta página tem mais informações sobre esse e outros controles relacionados.
