Emparelhar com Mac para desenvolvimento iOS
A criação de aplicativos iOS nativos usando a interface do usuário do aplicativo .NET multiplataforma (.NET MAUI) requer acesso às ferramentas de build da Apple, que são executadas apenas em um Mac. Por isso, o Visual Studio 2022 deve se conectar a um Mac acessível à rede para compilar aplicativos iOS do .NET MAUI.
O recurso Emparelhar com Mac do Visual Studio 2022 descobre, conecta-se, autentica e lembra hosts de build do Mac para que você possa trabalhar de forma produtiva no Windows.
Emparelhar com Mac permite o seguinte fluxo de trabalho de desenvolvimento de software:
- Você pode escrever código .NET MAUI iOS no Visual Studio 2022.
- O Visual Studio 2022 abre uma conexão de rede com um host de build do Mac e usa as ferramentas de build nesse computador para compilar e assinar o aplicativo iOS.
- Não há necessidade de executar um aplicativo separado no Mac – o Visual Studio 2022 invoca builds do Mac com segurança por SSH.
- O Visual Studio 2022 é notificado sobre as alterações assim que elas acontecem. Por exemplo, quando um dispositivo iOS é conectado ao Mac ou fica disponível na rede, a Barra de Ferramentas do iOS é atualizada instantaneamente.
- Várias instâncias do Visual Studio 2022 podem se conectar ao Mac simultaneamente.
- É possível usar a linha de comando do Windows para criar aplicativos iOS.
Observação
Antes de seguir as instruções neste artigo, em um Mac, instale o Xcode. Em seguida, abra manualmente o Xcode, após a instalação, para que ele possa adicionar componentes adicionais. Você também deve instalar o Mono. Além disso, se você tiver um computador Mac com Apple Silicon, certifique-se de que o Rosetta esteja instalado.
O Visual Studio 2022 configurará automaticamente o host de build do Mac. No entanto, você ainda deve instalar e executar o Xcode e instalar o Mono.
Habilitar acesso remoto no Mac
Para configurar o host de build do Mac, primeiramente habilite o acesso remoto:
No Mac, abra as Preferências do Sistema e vá para o painel Compartilhamento .
Marque Acesso Remoto na lista Serviço.
Certifique-se de que ele esteja configurado para permitir o acesso de Todos os usuários ou que seu nome de usuário ou grupo do Mac esteja incluído na lista de usuários permitidos.
Se solicitado, configure o firewall do macOS. Se tiver definido o firewall do macOS para bloquear conexões de entrada, poderá ser preciso permitir ao
mono-sgen
receber conexões de entrada. Um alerta aparece para avisá-lo em caso afirmativo.Se estiver na mesma rede que o computador Windows, o Mac agora deverá ser descoberto pelo Visual Studio 2022. Se o Mac ainda não for detectável, tente adicionar manualmente um Mac.
Conectar-se ao Mac do Visual Studio 2022
Depois de habilitar o logon remoto no Mac, conecte o Visual Studio 2022 ao Mac:
No Visual Studio 2022, abra um projeto .NET MAUI existente ou crie um novo.
Abra a caixa de diálogo Emparelhar com Mac com o botão Emparelhar com Mac na barra de ferramentas do iOS:
Como alternativa, selecione Ferramentas > iOS > Emparelhar com Mac.
A caixa de diálogo Emparelhar com Mac exibe uma lista de todos os hosts de compilação Mac conectados anteriormente e disponíveis no momento:
Selecione um Mac na lista e selecione Conectar.
Digite o nome de usuário e a senha. Na primeira vez que você se conectar a um Mac específico, será solicitado que você insira seu nome de usuário e senha para essa máquina:
Dica
Ao fazer login, use o nome de usuário do sistema.
O Emparelhar com Mac usa essas credenciais para criar uma conexão SSH com o Mac. Se tiver êxito, uma chave será adicionada ao arquivo authorized_keys no Mac. As conexões subsequentes com o mesmo Mac farão login automaticamente.
O Emparelhar com Mac configura automaticamente o Mac. O Visual Studio 2022 instala ou atualiza os pré-requisitos em um host de build do Mac conectado, conforme necessário. No entanto, o Xcode ainda deve ser instalado manualmente.
Examine o ícone de status da conexão. Quando o Visual Studio 2022 está conectado a um Mac, o item desse Mac na caixa de diálogo Emparelhar com Mac exibe um ícone indicando que ele está conectado no momento:
Pode haver apenas um Mac conectado por vez.
Dica
Clicar com o botão direito do mouse em qualquer Mac na lista Emparelhar com Mac exibe um menu de contexto que permite Conectar..., Esquecer este Mac ou Desconectar:
Se escolher Esquecer este Mac, suas credenciais para o Mac selecionado serão esquecidas. Para reconectar-se ao Mac, você precisará inserir novamente seu nome de usuário e senha.
Se você emparelhou com êxito com um host de build do Mac, está pronto para criar aplicativos .NET MAUI iOS no Visual Studio 2022. Para obter mais informações, consulte Criar seu primeiro aplicativo.
Se você não conseguiu emparelhar um Mac, tente adicionar um Mac manualmente.
Adicionar um Mac manualmente
Se você não vir um Mac específico listado na caixa de diálogo Emparelhar com Mac , adicione-o manualmente:
Abra as Preferências > do Sistema Compartilhando > o Login Remoto no Mac para localizar o endereço IP do Mac:
Como alternativa, use a linha de comando. No Terminal, emita o seguinte comando:
ipconfig getifaddr en0
Dependendo da configuração de rede, pode ser necessário usar um nome de interface diferente de
en0
, por exemplo,en1
ouen2
.Na caixa de diálogo Emparelhar com Mac do Visual Studio 2022, selecione Adicionar Mac...:
Digite o endereço IP do Mac e selecione Adicionar:
Insira o nome de usuário e a senha para o Mac:
Dica
Ao fazer login, use o nome de usuário do sistema.
Selecione Logon para conectar o Visual Studio 2022 ao Mac por SSH e adicioná-lo à lista de computadores conhecidos.
Ativar conexão automática com Macs conhecidos
Por padrão, uma conexão com Macs emparelhados anteriormente não será estabelecida quando o Visual Studio for iniciado. No entanto, a conexão automática com Macs conhecidos pode ser habilitada no Visual Studio navegando até Opções de Ferramentas > > Configurações do Xamarin > iOS e garantindo que a opção Habilitar conexão automática com Macs conhecidos esteja marcada:
Depois de reiniciar o Visual Studio, ele se conectará automaticamente a Macs conhecidos em cada inicialização.
Provisionamento automático do Mac
Emparelhar com Mac provisiona automaticamente um Mac com o software necessário para criar aplicativos .NET MAUI iOS. Isso inclui o .NET e várias ferramentas relacionadas ao Xcode (mas não o próprio Xcode).
Importante
- Não é possível instalar o Xcode em emparelhar com o Mac. Você deve instalá-lo manualmente no host de compilação do Mac. Ele é necessário para o desenvolvimento do .NET MAUI iOS.
- O provisionamento automático do Mac exige que o acesso remoto esteja habilitado no Mac, e o Mac deve ser acessível pela rede para o computador Windows.
- O provisionamento automático do Mac requer espaço livre suficiente no Mac para instalar o .NET.
Além disso, o Emparelhar com Mac executa as instalações e atualizações de software necessárias para o Mac, quando o Visual Studio 2022 se conecta a ele.
Licença e ferramentas Xcode
O Emparelhar com Mac também fará a verificação para determinar se o Xcode foi instalado e se a licença foi aceita. Embora o Emparelhar com Mac não instale o Xcode, ele solicita a aceitação da licença.
Além disso, o Emparelhar com Mac instalará ou atualizará vários pacotes distribuídos com o Xcode. A instalação desses pacotes ocorre rapidamente e sem um prompt.
Solução de problemas do provisionamento automático do Mac
Se você encontrar algum problema ao usar o provisionamento automático do Mac, dê uma olhada nos logs do IDE do Visual Studio 2022, armazenados em %LOCALAPPDATA%\Xamarin\Logs\17.0. Esses logs podem conter mensagens de erro para ajudá-lo a melhor diagnosticar a falha ou obter suporte.
Crie aplicativos do iOS da linha de comando do Windows
Emparelhar com Mac dá suporte à criação de aplicativos .NET MAUI na linha de comando. Navegue até a pasta que contém a origem do aplicativo .NET MAUI iOS e execute o seguinte comando:
dotnet build -f net8.0-ios -p:ServerAddress={macOS build host IP address} -p:ServerUser={macOS username} -p:ServerPassword={macOS password} -p:TcpPort=58181 -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/Xamarin/XMA/SDKs/dotnet/
Os parâmetros passados para dotnet
no exemplo acima são:
ServerAddress
– o endereço IP do host de compilação do Mac.ServerUser
– o nome de usuário a ser usado ao fazer login no host de compilação do Mac. Use seu nome de usuário do sistema em vez do nome completo.ServerPassword
– a senha a ser usada ao fazer login no host de compilação do Mac._DotNetRootRemoteDirectory
- a pasta no host de build do Mac que contém o SDK do .NET.
Na primeira vez que o Emparelhar com Mac faz logon em um host de build do Mac do Visual Studio 2022 ou da linha de comando, ele configura as chaves SSH. Com essas chaves, logins futuros não exigirão um nome de usuário ou senha. As chaves recém-criadas são armazenadas em %LOCALAPPDATA%\Xamarin\MonoTouch.
Se o parâmetro ServerPassword
for omitido de uma invocação de build da linha de comando, o Emparelhar com Mac tentará fazer logon no host de build do Mac usando as chaves SSH salvas.
Para obter mais informações sobre como criar aplicativos iOS na linha de comando do Windows, consulte Publicar um aplicativo iOS usando a linha de comando.