Emparejar con Mac para el desarrollo de iOS

Compilar aplicaciones nativas de iOS mediante .NET Multi-platform App UI (NET MAUI) requiere acceso a las herramientas de compilación de Apple, que solo se ejecutan en equipos Mac. Por ello, Visual Studio 2022 debe conectarse a un Mac con acceso a la red para crear aplicaciones para iOS de .NET MAUI.

La característica Emparejar con Mac de Visual Studio 2022 detecta y recuerda los hosts de compilación de Mac, además de conectarse a ellos y autenticarse con ellos, a fin de puedas trabajar de forma productiva.

Emparejar con Mac permite el flujo de trabajo de desarrollo de software siguiente:

  • Puedes escribir código de .NET MAUI iOS en Visual Studio 2022.
  • Visual Studio 2022 abre una conexión de red a un host de compilación de Mac y usa las herramientas de compilación en esa máquina para compilar y firmar la aplicación de iOS.
  • No es necesario ejecutar una aplicación independiente en el equipo Mac: Visual Studio 2022 invoca las compilaciones de Mac de forma segura a través de SSH.
  • Se notifica a Visual Studio 2022 sobre los cambios en cuanto se producen. Por ejemplo, cuando un dispositivo iOS se conecta al equipo Mac o está disponible en la red, la barra de herramientas de iOS se actualiza al instante.
  • Pueden conectarse simultáneamente varias instancias de Visual Studio 2022 al equipo Mac.
  • Es posible usar la línea de comandos de Windows para compilar aplicaciones de iOS.

Nota:

Antes de seguir las instrucciones de este artículo, en un equipo Mac, instala Xcode. Debes abrir manualmente Xcode después de realizar la instalación para poder agregar componentes adicionales. Además, también debes instalar la versión más reciente de Visual Studio 2022 para Mac o Mono. Además, si tienes un equipo Mac con Apple silicon, asegúrate de que Rosetta esté instalado.

Si prefieres no instalar Visual Studio 2022 para Mac, Visual Studio 2022 puede configurar automáticamente el host de compilación de Mac. Sin embargo, debes instalar y ejecutar Xcode e instalar Mono.

Habilitar la sesión remota en el equipo Mac

Para configurar el host de compilación de Mac, habilite primero la sesión remota:

  1. En el equipo Mac, abre el menú Preferencias del Sistema y navega al panel Compartir.

  2. Marque Sesión remota en la lista Servicio.

    Enabling remote login.

    Asegúrate de que está configurado para permitir el acceso de Todos los usuarios o que el nombre de usuario o el grupo de Mac se incluyen en la lista de usuarios permitidos.

  3. Si se le pide, configure el firewall de macOS. Si ha establecido el firewall de macOS para bloquear las conexiones entrantes, puede que necesite permitir mono-sgen para recibir conexiones entrantes. Aparece una alerta para preguntarte si es así.

  4. Si se encuentra en la misma red que la máquina de Windows, Visual Studio 2022 ya debería detectar el equipo Mac. Si el equipo Mac sigue sin detectarse, intenta agregar manualmente un equipo Mac.

Conectarse al equipo Mac desde Visual Studio 2022

Después de habilitar el inicio de sesión remoto en el equipo Mac, conecta Visual Studio 2022 al equipo Mac:

  1. En Visual Studio 2022, Crea un proyecto de .NET MAUI o abre uno existente.

  2. Abre el cuadro de diálogo Emparejar con Mac con la barra de herramientas de iOS del botón Emparejar con Mac :

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

    Como alternativa, selecciona Herramientas > iOS > Emparejar con Mac.

    El cuadro de diálogo Emparejar con Mac muestra una lista de todos los hosts de compilación de Mac conectados anteriormente y disponibles actualmente:

    The Pair to Mac dialog.

  3. Selecciona un equipo Mac en la lista y selecciona Conectar.

  4. Compruebe el nombre de usuario y la contraseña. La primera vez que te conectas a cualquier equipo Mac, se te pide que escribas el nombre de usuario y la contraseña de ese equipo:

    Entering a username and password for the Mac.

    Sugerencia

    Al iniciar sesión, use el nombre de usuario del sistema.

    Emparejar con Mac usa estas credenciales para crear una conexión SSH con el equipo Mac. Si se realiza correctamente, se agrega una clave al archivo authorized_keys en el equipo Mac. Las siguientes conexiones al mismo equipo Mac iniciarán sesión automáticamente.

  5. Emparejar con Mac configura automáticamente el equipo Mac. Visual Studio 2022 instala o actualiza los requisitos previos en un host de compilación Mac conectado según sea necesario. Sin embargo, Xcode todavía debe instalarse manualmente.

  6. Examina el icono de estado de conexión. Cuando Visual Studio 2022 está conectado a un equipo Mac, el elemento del equipo Mac del cuadro de diálogo Emparejar con Mac muestra un icono que indica que está conectado actualmente:

    A connected Mac.

    Solo puede haber un equipo Mac conectado en cualquier momento.

    Sugerencia

    Al hacer clic con el botón derecho en cualquier equipo Mac de la lista Emparejar con Mac, se abrirá un menú contextual que le permite Conectar..., Olvidar este equipo Mac o Desconectar:

    The Pair to Mac context menus.

    Si elige Olvidar este equipo Mac, se olvidarán sus credenciales del equipo Mac seleccionado. Para volver a conectarse a ese equipo Mac, debe volver a escribir el nombre de usuario y la contraseña.

Si te has emparejado correctamente con un host de compilación de Mac, estás listo para compilar aplicaciones de .NET MAUI iOS en Visual Studio 2022. Para obtener más información, consulta Cree su primera aplicación.

Si no has podido emparejarte con un equipo Mac, intenta agregar manualmente el equipo Mac.

Agregar un equipo Mac manualmente

Si no ves un equipo Mac determinado en el cuadro de diálogo Emparejar con Mac, agrégalo manualmente:

  1. Abre Preferencias del sistema > Compartir > Inicio de sesión remotoen el equipo Mac para buscar la dirección IP del equipo:

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

    Como alternativa, use la línea de comandos. En el terminal, ejecuta el comando siguiente:

    ipconfig getifaddr en0
    

    En función de la configuración de red, puede que tengas que usar un nombre de interfaz que no sea en0, por ejemplo, en1 o en2.

  2. En el cuadro de diálogo Emparejar con Mac de Visual Studio 2022, seleccione Agregar equipo Mac:

    The Add Mac button in the Pair to Mac dialog.

  3. Escribe la dirección IP del equipo Mac y haz clic en Agregar:

    Entering the Mac's IP address.

  4. Escriba el nombre de usuario y la contraseña del equipo Mac:

    Enter a username and password.

    Sugerencia

    Al iniciar sesión, use el nombre de usuario del sistema.

  5. Haz clic en Iniciar sesión para conectar Visual Studio 2022 al equipo Mac mediante SSH y agregarlo a la lista de equipos conocidos.

Habilitación de la conexión automática a equipos Mac conocidos

De forma predeterminada, no se establecerá una conexión a equipos Mac emparejados previamente cuando se inicie Visual Studio. Sin embargo, la conexión automática a equipos Mac conocidos se puede habilitar en Visual Studio; para ello, navega a Herramientas > Opciones > Xamarin > Configuración de iOS y asegúrate de que Enable auto connection to known Macs está activada:

Enable auto connection to known Macs in Visual Studio.

Después de reiniciar Visual Studio, se conectará automáticamente a equipos Mac conocidos en cada inicio.

Aprovisionamiento automático del equipo Mac

Emparejar con Mac aprovisiona automáticamente un equipo Mac con el software necesario para compilar aplicaciones de .NET MAUI iOS. Esto incluye .NET y varias herramientas relacionadas con Xcode (pero no Xcode).

Importante

  • Emparejar con Mac no puede instalar Xcode. Debes instalarlo manualmente en el host de compilación de Mac. Se necesita para el desarrollo de .NET MAUI iOS.
  • El aprovisionamiento automático del equipo Mac requiere que esté habilitada la sesión remota en el equipo Mac y el equipo Windows debe poder acceder a este desde la red.
  • El aprovisionamiento automático del equipo Mac requiere espacio libre en el equipo Mac para instalar .NET.

Además, Emparejar con Mac realiza las instalaciones o actualizaciones de software necesarias cuando Visual Studio 2022 se conecta al equipo Mac.

Licencias y herramientas de Xcode

Emparejar con Mac también comprobará si se ha instalado Xcode y se ha aceptado su licencia. Aunque Emparejar con Mac no instala Xcode, solicita la aceptación de la licencia.

Además, Emparejar con Mac instalará o actualizará varios paquetes distribuidos con Xcode. La instalación de estos paquetes se produce rápidamente y sin preguntar al usuario.

Solución de problemas de aprovisionamiento automático del equipo Mac

Si se produce algún problema con el aprovisionamiento automático del equipo Mac, eche un vistazo a los registros del IDE de Visual Studio 2022, que se almacenan en %LOCALAPPDATA%\Xamarin\Logs\17.0. Estos registros pueden contener mensajes de error que le ayudarán a diagnosticar mejor el error o recibir soporte técnico.

Compilar aplicaciones de iOS desde la línea de comandos de Windows

Emparejar con Mac permite compilar aplicaciones de .NET MAUI desde la línea de comandos. Navega a la carpeta que contiene el código de la aplicación .NET MAUI iOS y ejecuta el siguiente 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/

Los parámetros pasados a dotnet en el ejemplo anterior son:

  • ServerAddress: la dirección IP del host de compilación de Mac.
  • ServerUser: el nombre de usuario que se usará al iniciar sesión en el host de compilación de Mac. Use el nombre de usuario del sistema en lugar del nombre completo.
  • ServerPassword: la contraseña que se usará al iniciar sesión en el host de compilación de Mac.
  • _DotNetRootRemoteDirectory: la carpeta del host de compilación de Mac que contiene el SDK de .NET.

La primera vez que Emparejar con Mac inicia sesión en un host de compilación de Mac desde Visual Studio 2022 o desde la línea de comandos, configura claves SSH. Con estas claves, los futuros inicios de sesión no requerirán nombre de usuario ni contraseña. Las claves recién creadas se almacenan en %LOCALAPPDATA%\Xamarin\MonoTouch.

Si se omite el parámetro ServerPassword de una invocación de compilación de la línea de comandos, Emparejar con Mac intenta iniciar sesión en el host de compilación de Mac mediante las claves SSH guardadas.

Para obtener más información sobre la compilación de aplicaciones iOS desde la línea de comandos de Windows, consulta Publicar una aplicación iOS con la línea de comandos.