Emparelhar com Mac para desenvolvimento iOS

A criação de aplicativos iOS nativos usando a interface do usuário do aplicativo multiplataforma .NET (.NET MAUI) requer acesso às ferramentas de compilação da Apple, que só são executadas em um Mac. Devido a isso, o Visual Studio 2022 deve se conectar a um Mac acessível em rede para criar aplicativos iOS .NET MAUI.

O recurso Emparelhar com Mac do Visual Studio 2022 descobre, conecta-se, autentica e lembra hosts de compilação 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 o código iOS do .NET MAUI no Visual Studio 2022.
  • O Visual Studio 2022 abre uma conexão de rede com um host de compilação do Mac e usa as ferramentas de compilação nessa máquina para compilar e assinar o aplicativo iOS.
  • Não há necessidade de executar um aplicativo separado no Mac – o Visual Studio 2022 invoca compilações do Mac com segurança sobre 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 deste 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. Além disso, você também deve instalar o Visual Studio 2022 para Mac ou Mono mais recente. Além disso, se tiver um computador Mac com silício Apple, certifique-se de que o Rosetta está instalado.

Se você preferir não instalar o Visual Studio 2022 para Mac, o Visual Studio 2022 pode configurar automaticamente o host de compilação 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:

  1. No Mac, abra as Preferências do Sistema e vá para o painel Compartilhamento .

  2. Marque Acesso Remoto na lista Serviço.

    Enabling remote login.

    Verifique se ele está configurado para permitir o acesso de Todos os usuários ou se o nome de usuário ou grupo do Mac está incluído na lista de usuários permitidos.

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

  4. Se estiver na mesma rede que a máquina Windows, o Mac agora deve ser descoberto pelo Visual Studio 2022. Se o Mac ainda não for detectável, tente adicionar manualmente um Mac.

Conectar-se ao Mac a partir do Visual Studio 2022

Depois de habilitar o logon remoto no Mac, conecte o Visual Studio 2022 ao Mac:

  1. No Visual Studio 2022, abra um projeto .NET MAUI existente ou crie um novo.

  2. Abra a caixa de diálogo Emparelhar com Mac com o botão Emparelhar com Mac barra de ferramentas do iOS:

    The iOS toolbar, with the Pair to Mac button highlighted.

    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 atualmente disponíveis:

    The Pair to Mac dialog.

  3. Selecione um Mac na lista e selecione Conectar.

  4. Digite o nome de usuário e a senha. Na primeira vez que se ligar a um Mac específico, ser-lhe-á pedido que introduza o seu nome de utilizador e palavra-passe para essa máquina:

    Entering a username and password for the Mac.

    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 ligações subsequentes ao mesmo Mac iniciarão sessão automaticamente.

  5. O Emparelhar com Mac configura automaticamente o Mac. O Visual Studio 2022 instala ou atualiza os pré-requisitos em um host de compilação do Mac conectado, conforme necessário. No entanto, o Xcode ainda deve ser instalado manualmente.

  6. 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:

    A connected Mac.

    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:

    The Pair to Mac context menus.

    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 compilação do Mac, está pronto para criar aplicativos iOS .NET MAUI no Visual Studio 2022. Para obter mais informações, consulte Criar seu primeiro aplicativo.

Se não conseguir emparelhar um Mac, experimente adicionar manualmente um Mac.

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:

  1. Abra as Preferências > do Sistema Compartilhando > o Login Remoto no Mac para localizar o endereço IP do Mac:

    The Mac's IP address in System Preferences > Sharing.

    Como alternativa, use a linha de comando. No Terminal, emita o seguinte comando:

    ipconfig getifaddr en0
    

    Dependendo da configuração da rede, talvez seja necessário usar um nome de interface diferente de en0, por exemplo, en1 ou en2.

  2. Na caixa de diálogo Emparelhar com Mac do Visual Studio 2022, selecione Adicionar Mac...:

    The Add Mac button in the Pair to Mac dialog.

  3. Digite o endereço IP do Mac e selecione Adicionar:

    Entering the Mac's IP address.

  4. Insira o nome de usuário e a senha para o Mac:

    Enter a username and password.

    Dica

    Ao fazer login, use o nome de usuário do sistema.

  5. Selecione Login para conectar o Visual Studio 2022 ao Mac via SSH e adicione-o à lista de máquinas conhecidas.

Ativar a 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:

Enable auto connection to known Macs in Visual Studio.

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 iOS .NET MAUI. Isso inclui o .NET e várias ferramentas relacionadas ao Xcode (mas não o próprio Xcode).

Importante

  • Emparelhar com Mac não pode instalar o Xcode. Você deve instalá-lo manualmente no host de compilação do Mac. É 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 Pair to 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 oferece suporte à criação de aplicativos .NET MAUI a partir da linha de comando. Navegue até a pasta que contém a origem do seu aplicativo iOS .NET MAUI 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 compilação do Mac que contém o SDK do .NET.

Na primeira vez que o Emparelhar com Mac faz logon em um host de compilação do Mac a partir do Visual Studio 2022 ou da linha de comando, ele configura 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 a partir da linha de comando do Windows, consulte Publicar um aplicativo iOS usando a linha de comando.