Share via


Implantar um aplicativo iOS usando a reinicialização ativa

Normalmente, ao criar um aplicativo, seu código é compilado e combinado com outros recursos do projeto para criar um pacote de aplicativos implantado em seu simulador ou dispositivo. Com esse modelo, quando você faz uma alteração em seu aplicativo, um novo pacote de aplicativos precisa ser criado e implantado. Embora compilações incrementais possam ajudar a reduzir o tempo de compilação, as implantações geralmente levam a mesma quantidade de tempo, independentemente do tamanho da alteração.

A reinicialização ativa da interface do usuário do aplicativo multiplataforma do .NET (.NET MAUI) permite que você implante rapidamente um aplicativo .NET MAUI em um dispositivo iOS local de 64 bits, a partir do Visual Studio 2022, sem a necessidade de um host de compilação do Mac. Ele elimina a necessidade de uma reconstrução completa do pacote de aplicativos, enviando alterações para o pacote de aplicativos existente que já está presente no seu dispositivo iOS conectado localmente. Ele oferece suporte a alterações em arquivos de código, recursos e referências de projeto, permitindo que você teste rapidamente as alterações em seu aplicativo durante o desenvolvimento.

Importante

A reinicialização a quente não substitui a experiência de compilação completa fornecida por um host de compilação do Mac. Por exemplo, ele só pode implantar aplicativos que usam a configuração de compilação de depuração e não oferece suporte a bibliotecas e estruturas estáticas, XCFrameworks ou pacotes de recursos de vinculação. Para obter mais informações, confira Limitações.

Há uma série de requisitos que devem ser atendidos para usar a reinicialização ativa para implantar um aplicativo .NET MAUI em um dispositivo iOS conectado localmente:

  • Você deve estar usando o Visual Studio 2022 versão 17.3 ou superior.
  • Você deve ter o iTunes (Microsoft Store ou versão de 64 bits) instalado em sua máquina de desenvolvimento.
  • Você deve ter uma conta de desenvolvedor Apple e inscrição paga no Apple Developer Program .

Instalação

Execute as seguintes etapas para configurar a reinicialização a quente:

  1. Na barra de ferramentas do Visual Studio, use o menu suspenso Destino de depuração para selecionar Dispositivos locais do iOS e, em seguida, a entrada Dispositivo local:

    Screenshot of choosing the initial debug target for hot restart.

  2. Na barra de ferramentas do Visual Studio, selecione Dispositivo Local:

    Screenshot of the initial debug target chosen for hot restart.

    O assistente de configuração de instalação de reinicialização a quente será exibido, o que o guiará durante a configuração de um dispositivo iOS local para implantação de reinicialização a quente.

  3. No assistente de instalação do Hot Restart para instalação, selecione Avançar:

    Screenshot of the first step in the setup hot restart wizard.

  4. Se você não tiver o iTunes instalado, o assistente de configuração solicitará que você o instale. No assistente de configuração do Setup Hot Restart , selecione Baixar iTunes:

    Screenshot of the second step in the setup hot restart wizard.

    Observação

    O iTunes pode ser instalado a partir da Microsoft Store ou transferindo-o a partir da Apple.

    Aguarde o download do iTunes e instale-o. Se você instalá-lo a partir da Microsoft Store, assim que a instalação for concluída, abra-o e siga os prompts adicionais para habilitá-lo a descobrir dispositivos conectados localmente.

  5. No assistente de configuração de Reinicialização a Quente de Instalação, selecione Avançar para ir para a próxima etapa do assistente que solicitará que você conecte um dispositivo iOS local:

    Screenshot of the initial third step in the setup hot restart wizard.

  6. Conecte seu dispositivo iOS à sua máquina de desenvolvimento através de um cabo USB. Um prompt pode aparecer no seu dispositivo solicitando que você confie na sua máquina de desenvolvimento. No dispositivo, clique em Confiar e siga as instruções adicionais do dispositivo.

  7. No assistente de configuração Configuração de Reinicialização a Quente , selecione Avançar assim que o dispositivo iOS local for detectado:

    Screenshot of the completed third step in the setup hot restart wizard.

    Observação

    Se o assistente de configuração não detectar o dispositivo iOS local, desconecte-se e reconecte o dispositivo iOS local da máquina de desenvolvimento. Além disso, certifique-se de que o iTunes reconhece o dispositivo iOS local.

  8. No assistente de configuração do Setup Hot Restart, clique no hiperlink Entrar com uma conta individual para configurar o hot restart para usar sua conta individual do Apple Developer Program:

    Screenshot of the initial fourth step in the setup hot restart wizard.

    A caixa de diálogo Conta individual é exibida.

    Observação

    Como alternativa, para configurar a reinicialização ativa para usar uma conta corporativa do Apple Developer, clique no hiperlink Entrar com uma conta corporativa e insira suas credenciais na caixa de diálogo exibida. Em seguida, prossiga para a etapa 12.

  9. Crie uma chave de API do App Store Connect. Isso exigirá que você tenha uma conta de desenvolvedor da Apple e uma inscrição paga no Apple Developer Program. Para obter informações sobre como criar uma chave de API do App Store Connect, consulte Criando chaves de API para a API do App Store Connect em developer.apple.com.

  10. Na caixa de diálogo Conta individual, insira os dados da chave da API do App Store Connect:

    Screenshot of the completed dialog for adding an Apple Individual account.

    Os dados de Nome, ID do Emissor e ID da Chave podem ser encontrados no App Store Connect selecionando Usuários e Acesso e, em seguida, a guia Chaves. A chave privada também pode ser baixada deste local:

    Screenshot of Apple App Store Connect API details.

  11. Na caixa de diálogo Conta individual, clique no botão Adicionar . A caixa de diálogo Conta individual será fechada.

  12. No assistente de instalação Hot Restart setup, clique no botão Concluir :

    Screenshot of the completed fourth step in the setup hot restart wizard.

    Sua conta do Apple Developer Program será adicionada ao Visual Studio e o assistente de instalação Hot Restart será fechado.

  13. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Propriedades.

  14. Nas propriedades do projeto, expanda iOS e selecione Assinatura de pacote. Use a lista suspensa Esquema para selecionar Provisionamento Automático e clique no hiperlink Configurar Provisionamento Automático:

    Screenshot of automatic provisioning enabled within the iOS property page in Visual Studio.

    A caixa de diálogo Configurar provisionamento automático será exibida.

  15. Na caixa de diálogo Configurar provisionamento automático, selecione a equipe para sua chave de API do Connect:

    Screenshot of the automatic provisioning dialog when it's correctly configured.

    O Visual Studio concluirá o processo de provisionamento automático. Em seguida, clique no botão Ok para descartar a caixa de diálogo Configurar provisionamento automático.

    Observação

    O uso do provisionamento automático é recomendado para que dispositivos iOS adicionais possam ser facilmente configurados para implantação. No entanto, você pode usar o provisionamento manual se os perfis de provisionamento corretos estiverem presentes em sua máquina.

Implantar e depurar usando a reinicialização ativa

Depois de executar a configuração inicial, seu dispositivo iOS conectado local aparecerá no menu suspenso de destino de depuração. Para implantar e depurar seu aplicativo:

  1. Verifique se o dispositivo iOS conectado local está desbloqueado.

  2. Na barra de ferramentas do Visual Studio, selecione seu dispositivo iOS conectado local na lista suspensa de destino de depuração e clique no botão Executar para criar seu aplicativo e implantá-lo em seu dispositivo iOS local:

    Screenshot of the chosen debug target for hot restart.

  3. Depois de implantar seu aplicativo, o Visual Studio exibirá a caixa de diálogo Depurador de Conexão:

    Screenshot of the dialog asking you to launch the app on your device.

    Inicie o aplicativo em seu dispositivo e o Visual Studio conectará o depurador ao aplicativo em execução e a caixa de diálogo Depurador de Conexão será descartada.

Enquanto estiver depurando seu aplicativo, você pode editar seu código C# e pressionar o botão de reinicialização na barra de ferramentas do Visual Studio para reiniciar sua sessão de depuração com as novas alterações aplicadas:

Screenshot of the restart button on the Visual Studio toolbar.

Impedir a execução de código

O HOTRESTART símbolo do pré-processador pode ser usado para impedir que o código seja executado durante a depuração com a reinicialização a quente:

#if !HOTRESTART
  // Code here won't be executed when debugging with hot restart
#endif

Ativar reinicialização a quente

A reinicialização a quente é habilitada por padrão no Visual Studio 2022. Se ele tiver sido desabilitado anteriormente, ele poderá ser habilitado selecionando Opções de Ferramentas > na barra de menus do Visual Studio. Em seguida, na caixa de diálogo Opções , expanda Xamarin e selecione Configurações do iOS. Em seguida, verifique se a opção Ativar reinicialização a quente está marcada:

Screenshot of how to enable hot restart within Visual Studio.

Limitações

Há limitações ao usar a reinicialização a quente:

  • Ele só pode ser usado para implantar aplicativos que usam a configuração de compilação de depuração. Você ainda precisará de um host de compilação do Mac para criar, assinar e implantar seu aplicativo para fins de produção.
  • Os arquivos Storyboard e XIB não são suportados, e seu aplicativo pode falhar se tentar carregá-los em tempo de execução.
  • As bibliotecas e estruturas estáticas do iOS não são suportadas e você pode ver erros de tempo de execução ou falhas se seu aplicativo tentar carregá-los.
  • XCFrameworks e pacotes de recursos de vinculação não são suportados.
  • Não há suporte para catálogos de ativos. Ao usar o Hot Restart, seu aplicativo mostrará um ícone do .NET e uma tela de inicialização.

Solucionar problemas

O iOS usa um cão de guarda que monitora os tempos de inicialização e a capacidade de resposta do aplicativo e encerra os aplicativos que não respondem. Por exemplo, o watchdog encerra aplicativos que bloqueiam o thread principal por um tempo significativo. Em dispositivos iOS antigos, o cão de guarda pode encerrar um aplicativo que foi implantado usando a reinicialização ativa antes que o depurador se conecte a ele. A solução alternativa é reduzir a quantidade de processamento realizado no caminho de inicialização do aplicativo e usar um dispositivo iOS mais recente.

Para relatar problemas adicionais, use a ferramenta de comentários em Ajuda > para Enviar Comentários > Reporte um Problema.