Implementación de una aplicación de iOS con el reinicio rápido
Normalmente, al compilar una aplicación, el código se compila y combina con otros recursos de proyecto para compilar un lote de aplicaciones que se implementa en el simulador o dispositivo. Con este modelo, cuando realizas un cambio en la aplicación, debes compilar e implementar un nuevo grupo de aplicaciones. Aunque las compilaciones incrementales pueden ayudar a reducir el tiempo de compilación, las implementaciones suelen tardar la misma cantidad de tiempo independientemente del tamaño del cambio.
El reinicio rápido de .NET Multi-Platform App UI (.NET MAUI) permite implementar rápidamente una aplicación .NET MAUI en un dispositivo iOS local de 64 bits, desde Visual Studio 2022, sin necesidad de un host de compilación de Mac. Quita la necesidad de recompilar un paquete de aplicaciones completo insertando cambios en el lote de aplicaciones existente que ya está presente en el dispositivo iOS conectado localmente. Admite cambios en los archivos de código, los recursos y las referencias de proyecto, lo que te permite probar rápidamente los cambios en la aplicación durante su desarrollo.
Importante
El reinicio rápido no es un reemplazo de la experiencia de compilación completa proporcionada por un host de compilación de Mac. Por ejemplo, solo puede implementar aplicaciones que usen la configuración de compilación de depuración y no admite bibliotecas y marcos estáticos, XCFrameworks ni paquetes de recursos de enlace. Para obtener más información, consulta las limitaciones.
Hay varios requisitos que deben cumplirse para usar el reinicio rápido para implementar una aplicación .NET MAUI en un dispositivo iOS conectado localmente:
- Debes utilizar Visual Studio 2022 versión 17.3 o superior.
- Debes tener iTunes (Microsoft Store o una versión de 64 bits) instalado en tu equipo de desarrollo.
- Debes tener una cuenta de desarrollador de Apple y haber pagado una inscripción al programa para desarrolladores de Apple.
Configurar
Para configurar un reinicio rápido, sigue estos pasos:
En la barra de herramientas de Visual Studio, usa la lista desplegable Destino de depuración para seleccionar Dispositivos iOS locales y, a continuación, la entrada Dispositivo local:
En la barra de herramientas de Visual Studio, selecciona Dispositivo local:
Aparecerá el asistente para instalación Configurar el reinicio rápido, que te guiará a través de la configuración de un dispositivo iOS local para la implementación del reinicio rápido.
En el asistente para instalación Configurar el reinicio rápido, selecciona Siguiente:
Si no tienes iTunes instalado, el asistente para instalación te pedirá que lo instales. En el asistente para instalación Configurar el reinicio rápido, selecciona Descargar iTunes:
Nota:
iTunes puede instalarse desde Microsoft Store o descargarlo desde Apple.
Espera a que iTunes se descargue y, a continuación, instálalo. Si lo instalas desde Microsoft Store, una vez completada la instalación, ábrelo, sigue las indicaciones adicionales para habilitarlo para detectar dispositivos conectados localmente.
En el asistente para instalación Configurar el reinicio rápido, selecciona Siguiente para pasar al siguiente paso del asistente que te pedirá que conectes un dispositivo iOS local:
A continuación, conecta el dispositivo iOS al equipo de desarrollo a través de un cable USB. Puede aparecer un mensaje en el dispositivo en el que se te pide que confíes en el equipo de desarrollo. En el dispositivo, haz clic en Confiar y sigue las indicaciones adicionales del dispositivo.
En el asistente para instalación Configurar el reinicio rápido, selecciona Siguiente una vez que se detecte el dispositivo iOS local:
Nota:
Si el asistente para instalación no detecta el dispositivo iOS local, desconecta el dispositivo iOS local desde el equipo de desarrollo. Además, asegúrate de que iTunes reconoce el dispositivo iOS local.
En el asistente para instalación Configurar el reinicio rápido, haz clic en el hipervínculo Iniciar sesión con una cuenta individual para configurar el reinicio rápido para usar la cuenta individual del Programa para desarrolladores de Apple:
Aparece el cuadro de diálogo Cuenta individual.
Nota:
Como alternativa, para configurar el reinicio activo para usar una cuenta de desarrollador de Apple empresarial, haz clic en el hipervínculo Sign in with an enterprise account y escribe tus credenciales en el cuadro de diálogo que aparece. Después, continúa al paso 12:
Crea una clave de API de App Store Connect. Esto requerirá que tengas una cuenta de desarrollador de Apple y una inscripción de pago en el Programa para desarrolladores de Apple. Para obtener información sobre cómo crear una clave de API de App Store Connect, consulta Creating API Keys for App Store Connect API en developer.apple.com.
En el cuadro de diálogo Cuenta individual, escribe los datos de la clave de API de App Store Connect:
Los datos del Nombre, Id. de emisor e Id. de clave se pueden encontrar en App Store Connect seleccionando Users and Access y, a continuación, la pestaña Keys. La clave privada también se puede descargar desde esta ubicación:
En el cuadro de diálogo Cuenta individual, haz clic en el botón Agregar. Se cerrará el cuadro de diálogo Cuenta individual.
En el asistente para instalación Configurar el reinicio rápido, haz clic en el botón Finalizar:
La cuenta de Apple Developer Program se agregará a Visual Studio y se cerrará el asistente para instalación Configurar el reinicio rápido.
En el Explorador de soluciones, haz clic con el botón derecho en el proyecto y selecciona Propiedades.
En las propiedades del proyecto, expande iOS y selecciona Firma de lote. Usa la lista desplegable Esquema para seleccionar Aprovisionamiento automático y luego haz clic en el hipervínculo Configurar aprovisionamiento automático:
Aparecerá el cuadro de diálogo Configurar aprovisionamiento automático.
En el cuadro de diálogo Configurar aprovisionamiento automático, selecciona el equipo de la clave de la API de conexión:
Visual Studio completará el proceso de aprovisionamiento automático. Después, haz clic en el botón Aceptar para descartar el cuadro de diálogo Configurar aprovisionamiento automático.
Nota:
Se recomienda el uso del aprovisionamiento automático para que se puedan configurar fácilmente dispositivos de iOS adicionales para la implementación. Pero puedes deshabilitarlo y seguir usando el aprovisionamiento manual si los perfiles de aprovisionamiento correctos están presentes en tu equipo.
Implementación y depuración mediante reinicio rápido
Después de realizar la configuración inicial, el dispositivo iOS conectado local aparecerá en el menú desplegable del destino de depuración. Para implementar y depurar la aplicación:
Asegúrate de que el dispositivo iOS conectado local está desbloqueado.
En la barra de herramientas de Visual Studio, selecciona el dispositivo iOS conectado local en la lista desplegable de destino de depuración y haz clic en el botón Ejecutar para compilar la aplicación e implementarlo en el dispositivo iOS local:
Después de implementar la aplicación, Visual Studio mostrará el cuadro de diálogo Conectando el depurador:
Inicia la aplicación en el dispositivo y Visual Studio conectará el depurador a la aplicación en ejecución y se descartará el cuadro de diálogo Conectando el depurador.
Mientras depuras la aplicación, puedes editar el código de C# y presionar el botón reiniciar de la barra de herramientas de Visual Studio para reiniciar la sesión de depuración con los nuevos cambios aplicados:
Impedir que el código se ejecute
También se puede usar el símbolo de preprocesador HOTRESTART
para impedir que se ejecute cierto código al depurar con el reinicio rápido:
#if !HOTRESTART
// Code here won't be executed when debugging with hot restart
#endif
Habilitación del reinicio rápido
El reinicio rápido está habilitado de forma predeterminada en Visual Studio 2022. Si se ha deshabilitado anteriormente, se puede habilitar seleccionando Herramientas > Opciones en la barra del menú de Visual Studio. Luego, en el cuadro de diálogo Opciones, expande Xamarin y selecciona Configuración de iOS. A continuación, asegúrate de que Habilitar el reinicio rápido está activado:
Limitaciones
Existen limitaciones al usar el reinicio rápido:
- Solo se puede usar para implementar aplicaciones que usen la configuración de compilación de depuración. Seguirás necesitando un host de compilación de Mac para compilar, firmar e implementar la aplicación para la producción.
- Los archivos de Guión gráfico y XIB no se admiten y es posible que la aplicación se bloquee si intenta cargarlos en tiempo de ejecución.
- No se admiten marcos ni bibliotecas de iOS estáticos con bibliotecas estáticas y es posible que veas errores en runtime o bloqueos si la aplicación intenta cargarlos.
- Se admiten XCFrameworks y paquetes de recursos de enlace, siempre y cuando no contengan bibliotecas o marcos estáticos de iOS con bibliotecas estáticas.
- No se admiten catálogos de recursos. Al usar el reinicio rápido, la aplicación mostrará el icono y la pantalla de inicio de .NET.
Solución de problemas
iOS usa un guardián que supervisa los tiempos de inicio y la capacidad de respuesta de la aplicación y finaliza las aplicaciones que no responden. Por ejemplo, el guardián finaliza las aplicaciones que bloquean el subproceso principal durante un tiempo significativo. En los dispositivos iOS antiguos, el guardián puede finalizar una aplicación que se ha implementado mediante el reinicio rápido antes de que el depurador se haya conectado a ella. La solución consiste en reducir la cantidad de procesamiento realizada en la ruta de inicio de la aplicación y usar un dispositivo iOS más reciente.
Para notificar problemas adicionales, usa la herramienta de comentarios en Ayuda > Enviar comentarios> Informar sobre un problema.