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

# Comando serve

> Comando serve

O comando `serve` é usado para disponibilizar os layouts especificados para o CTA para experiências de validação.

Forneça um pacote de adaptação por toque empacotado (criado com o comando `pack`) ou um conjunto de layouts que não estejam empacotados.

A tabela a seguir mostra as diferentes opções disponíveis para uso com o comando `serve`.

| Opções | Descrição |
| - | - |
| `--takx`, `--takx-file <takx-file>` | Caminho para o pacote de adaptação por toque que você deseja disponibilizar. Este parâmetro, o parâmetro `--layout-path` ou o parâmetro `--takxconfig` é obrigatório. |
| `--takxconfig`, `--takx-config-file <takx-config-file>` | Caminho para o arquivo `takxconfig.json` que representa o pacote que você deseja disponibilizar. Este parâmetro, o parâmetro `--layout-path` ou o parâmetro `--takx` é obrigatório. |
| `--layout-path <layout-path>` | Caminho para o diretório raiz de layouts que você deseja incluir no pacote disponibilizado. Este parâmetro, o parâmetro `--takx-file` ou o parâmetro `--takxconfig` é obrigatório. Quando `--takxconfig` é especificado, este argumento substitui o caminho especificado no arquivo `takxconfig.json`. |
| `--asset-path <asset-path>` | Caminho para o diretório raiz de ativos que você deseja incluir no pacote disponibilizado. Se o pacote não tiver ativos, este parâmetro não é obrigatório. Quando `--takxconfig` é especificado, este argumento substitui o caminho especificado no arquivo `takxconfig.json`. |
| `--context file <context-file>` | Caminho para o arquivo de contexto que você deseja incluir no pacote. Se o pacote não tiver contexto, este parâmetro não é obrigatório. Quando `--takxconfig` é especificado, este argumento substitui o caminho especificado no arquivo `takxconfig.json`. |
| `--default-layout <default-layout>` | Nome do layout padrão. Deve corresponder ao nome de um dos arquivos no caminho de layouts. Quando `--takxconfig` é especificado, este argumento substitui o padrão especificado no arquivo `takxconfig.json`. |
| `--version <version>` | Versão do conteúdo do pacote de adaptação por toque, como 1.0.0.0. Cada pacote de adaptação por toque enviado à Microsoft para um título deve ter um número de versão semanticamente maior do que qualquer pacote de adaptação por toque enviado anteriormente. O número de versão do pacote de adaptação por toque em uso enquanto um jogo está sendo transmitido pode ser obtido chamando [XGameStreamingGetTouchBundleVersion](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversion). Quando `--takxconfig` é especificado, este argumento substitui a versão especificada no arquivo `takxconfig.json`. |
| `--version-name <version-name>` | Nome da versão do conteúdo do pacote de adaptação por toque, como "DLC 1". Ao contrário do número de versão, o nome da versão é opcional e não há requisitos quanto ao seu formato. O nome da versão do pacote de adaptação por toque em uso enquanto um jogo está sendo transmitido pode ser obtido chamando [XGameStreamingGetTouchBundleVersion](/pt-BR/reference/system/xgamestreaming/functions/xgamestreaminggettouchbundleversion). Quando `--takxconfig` é especificado, este argumento substitui o nome da versão especificado no arquivo `takxconfig.json`. |
| `--no-asset-optimization` | Garante que os ativos não sejam otimizados para armazenamento e comunicação eficientes. Se definido, os ativos não são modificados. |
| `--no-verify` | Garante que o pacote de adaptação por toque produzido não seja verificado quanto à validade |
| `--language <language>` | Marca de idioma IETF de um idioma a ser incluído no pacote produzido e disponibilizado. Se este parâmetro for especificado várias vezes, todos os idiomas fornecidos serão incluídos. Se o parâmetro não for especificado, todos os layouts e ativos encontrados no diretório de origem serão incluídos no pacote disponibilizado. Quando `--takxconfig` é especificado, este argumento substitui os idiomas especificados no arquivo `takxconfig.json`. |
| `--port <port>` | Porta na qual disponibilizar o pacote de adaptação por toque. A porta padrão é 9269. |
| `--host <host>` | Host no qual disponibilizar o pacote de adaptação por toque. O host padrão é `0.0.0.0`, que habilita o pacote em todas as interfaces de rede. Use `localhost` para habilitar o servidor somente como loopback, ou um IP específico para controlar em qual interface o servidor estará disponível. |
| `--certificate-file <certificate-file>` | Caminho para o arquivo de certificado .pfx usado para autenticar o servidor em solicitações HTTPS seguras. Este sinalizador é necessário para que a ferramenta hospede um servidor HTTPS autenticado. <br /><br />⚠️ **OBSERVAÇÃO:** O [Aplicativo de Teste de Conteúdo Web (CTA)](/pt-BR/build/core-features/common/game-streaming/game-streaming-web-content-test-application) só pode se conectar a servidores de sideload remotos que usem `https` e esta opção. |
| `--certificate-password <certificate-password>` | Senha necessária para acessar os dados do certificado. |
| `--password <password>` | Senha para autenticar o cliente. Este é um sinalizador opcional para restringir o acesso do cliente aos pacotes de adaptação por toque ao fazer sideload por https. Para autenticar o cliente com êxito, a senha fornecida deve corresponder à senha fornecida nas configurações de desenvolvedor do cliente. |

### Considerações de segurança

O comando `serve` destina-se ao desenvolvimento local. Ele hospeda temporariamente pacotes de adaptação por toque a partir de um PC de desenvolvimento para que um cliente de streaming possa carregá-los durante a iteração. Ele não deve ser exposto à internet pública.

<Info>
  Use a associação de host mais restrita que atenda ao seu cenário:

  * Use `--host localhost` quando apenas o PC local precisar se conectar.
  * Use `--host <specific IP address>` quando um cliente de streaming precisar se conectar por meio de uma interface de rede local conhecida.
  * Use `--host 0.0.0.0` somente quando você pretender escutar em todas as interfaces de rede do PC de desenvolvimento. Outros dispositivos na mesma rede poderão alcançar o servidor de sideload se as regras de firewall e de rede permitirem.

  O ouvinte HTTP padrão é aceitável para uma sessão de sideload local confiável enquanto você estiver iterando ativamente. Restrinja a configuração quando fizer a associação além de `localhost`, usar uma rede compartilhada ou não confiável, ou precisar deixar o servidor acessível por mais tempo do que a passagem de teste atual. Nesses casos, prefira HTTPS usando `--certificate-file` com `--certificate-password`, conforme descrito em [Instruções de geração de certificado](#certificate-generation-instructions). Adicione `--password` quando quiser restringir o acesso do cliente ao pacote disponibilizado.
</Info>

Quando `--password` for usado, escolha ou gere o valor localmente para a sessão de sideload e insira o mesmo valor nas configurações de desenvolvedor do cliente. A senha protege o acesso a essa sessão local de sideload HTTPS; a Microsoft não a gerencia nem a altera para você. Para alterá-la, reinicie `tak serve` com uma nova senha e atualize a configuração do cliente.

### Exemplos

Use o exemplo de código a seguir para disponibilizar um pacote de adaptação por toque em um host.

***

Disponibilizar todos os layouts do layout-path na porta e no host padrão e declarar uma versão/nome de versão específico

```
C:\>tak serve --layout-path C:\tmp\layouts --version 1.0.0.2 --versionName DLC2
Verifying touch adaptation bundle 'C:\tmp\layouts'.
Now listening on: http://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
```

***

Disponibilizar um pacote de adaptação por toque especificado somente por localhost

```
C:\>tak serve --takx-file C:\tmp\MyGameLayouts.takx --host localhost
Now listening on: http://localhost:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
```

***

### Instruções de geração de certificado

Um certificado é necessário para hospedar um servidor seguro autenticado para fazer sideload de pacotes de toque. Qualquer certificado SSL apropriado pode ser usado, mas as instruções abaixo também criarão um certificado

1. Obtenha o script para gerar um certificado autoassinado no [GitHub do XBOX Game Streaming Tools](https://github.com/microsoft/xbox-game-streaming-tools/blob/main/touch-adaptation-kit/scripts/Create-SelfSignedCertificate.ps1)

   a. Navegue até o link acima, selecione 'raw' e copie e cole o conteúdo do script em um documento no seu computador local

   b. Como alternativa, execute o seguinte comando no Powershell para baixar o script

```powershell theme={null}
    Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/xbox-game-streaming-tools/main/touch-adaptation-kit/scripts/Create-SelfSignedCertificate.ps1 -Out ./Create-SelfSignedCertificate.ps1
```

<Note>
  O script Create-SelfSignedCertificate.ps1 funciona somente no Windows. Podem existir ferramentas em outros sistemas operacionais para gerar certificados autoassinados válidos
</Note>

2. Execute o script baixado no Powershell.
3. O script solicitará uma senha para proteger o certificado. Defina a senha digitando-a aqui. Essa senha será usada como entrada para o sinalizador -certificate-password do comando serve.
   Isso gerará dois arquivos: `sideload.pfx` e `sideload.cer`. O caminho para o arquivo de certificado `sideload.pfx` deve ser passado como entrada para o sinalizador -certificate-file do comando serve.

### Confiar no certificado em diferentes clientes

Carregue o arquivo .cer no seu dispositivo. Isso pode ser feito por email, OneDrive, USB, ADB, AirDrop etc. Confie no certificado da maneira habitual apropriada para o dispositivo em questão.

#### Windows

1. Clique duas vezes no arquivo `sideload.cer`
2. Selecione 'Instalar Certificado'. Isso abrirá o Assistente para Importação de Certificados.
3. Selecione 'Usuário Atual' como o Local do Repositório.
4. Na próxima janela, selecione 'Colocar todos os certificados no repositório a seguir' e, em seguida, selecione 'Procurar Autoridades de Certificação Raiz Confiáveis'.

#### Android

1. No seu dispositivo Android, navegue até Configurações > Segurança > Avançado > Criptografia e credenciais > Instalar do armazenamento.
2. Instale o certificado selecionando **Certificado de CA** e, em seguida, procure o arquivo `sideload.cer` baixado na seção anterior

   Após a instalação, esse certificado poderá ser visualizado em Credenciais confiáveis > Usuário

Consulte a [documentação do Google](https://support.google.com/pixelphone/answer/2844832?hl=en) para obter mais informações.

#### iOS

1. Navegue até o aplicativo Arquivos no seu dispositivo iOS para instalar o arquivo .cer nos perfis do dispositivo
2. Um novo perfil deverá ser gerado com base no nome do perfil do arquivo .cer. Ele pode ser encontrado em Ajustes > Geral > Perfis e Gerenciamento de Dispositivo.
3. Instale o certificado. A assinatura do certificado deverá ser exibida como verificada.
4. Para testar o certificado instalado, navegue até Ajustes > Geral > Sobre > Ajustes de Confiança de Certificados. Ative a confiança total para o certificado raiz que acabou de ser instalado.

Consulte a [documentação da Apple](https://support.apple.com/en-us/HT204477) para obter mais informações.

### Exemplos

Use o exemplo de código a seguir para disponibilizar um pacote de adaptação por toque em um host com segurança.

***

Disponibilizar todos os layouts do caminho de layouts no host e na porta padrão por https

```
C:\>  tak serve --layout-path C:\tmp\layouts --certificate-file C:\tmp\sideload.pfx --certificate-password "password"
Adding local loopback exemption for PC app connections.
OK.
Hosting starting
Now listening on: https://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
Hosting started
```

***

Disponibilizar todos os layouts do caminho de layouts no host e na porta padrão com segurança, após autenticar o cliente.

```
C:\>  tak serve --layout-path C:\tmp\layouts --certificate-file C:\tmp\sideload.pfx --certificate-password "certificatePassword" -password "password"
Adding local loopback exemption for PC app connections.
OK.
Hosting starting
User profile is available. Using 'AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Now listening on: https://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
```

***

## Confira também

[Ferramenta de linha de comando do Touch Adaptation Kit (tak.exe)](/pt-BR/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line)


## Related topics

- [Comando pack](/es/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line-pack-command.md)
- [Referencia de la herramienta de línea de comandos del Touch Adaptation Kit (TAK)](/es/build/core-features/common/game-streaming/tak-command-line-tool/index.md)
- [Implementación de los diseños de controles táctiles](/es/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-deploying-touch-layout.md)
- [Comando verify](/es/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line-verify-command.md)
- [Comando license](/es/build/core-features/common/game-streaming/tak-command-line-tool/game-streaming-tak-command-line-license-command.md)
