Comparteix a través de


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:

Configurar

Para configurar un reinicio rápido, sigue estos pasos:

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

    Captura de pantalla de la elección del destino de depuración inicial para el reinicio rápido.

  2. En la barra de herramientas de Visual Studio, selecciona Dispositivo local:

    Captura de pantalla del destino de depuración inicial elegido para el reinicio rápido.

    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.

  3. En el asistente para instalación Configurar el reinicio rápido, selecciona Siguiente:

    Captura de pantalla del primer paso del asistente para reinicio rápido de la instalación.

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

    Captura de pantalla del segundo paso del asistente para reinicio rápido de la instalación.

    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.

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

    Captura de pantalla del tercer paso inicial del asistente para reinicio rápido de la instalación.

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

  7. En el asistente para instalación Configurar el reinicio rápido, selecciona Siguiente una vez que se detecte el dispositivo iOS local:

    Captura de pantalla del tercer paso completado en el asistente para reinicio rápido de la instalación.

    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.

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

    Captura de pantalla del cuarto paso inicial en el asistente para reinicio rápido de la instalación.

    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:

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

  10. En el cuadro de diálogo Cuenta individual, escribe los datos de la clave de API de App Store Connect:

    Captura de pantalla del cuadro de diálogo completado para agregar una cuenta individual de Apple.

    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:

    Captura de pantalla de los detalles de la API Connect de Apple App Store.

  11. En el cuadro de diálogo Cuenta individual, haz clic en el botón Agregar. Se cerrará el cuadro de diálogo Cuenta individual.

  12. En el asistente para instalación Configurar el reinicio rápido, haz clic en el botón Finalizar:

    Captura de pantalla del cuarto paso completado en el asistente para el reinicio rápido de la instalación.

    La cuenta de Apple Developer Program se agregará a Visual Studio y se cerrará el asistente para instalación Configurar el reinicio rápido.

  13. En el Explorador de soluciones, haz clic con el botón derecho en el proyecto y selecciona Propiedades.

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

    Captura de pantalla del aprovisionamiento automático habilitado en la página de propiedades de iOS en Visual Studio.

    Aparecerá el cuadro de diálogo Configurar aprovisionamiento automático.

  15. En el cuadro de diálogo Configurar aprovisionamiento automático, selecciona el equipo de la clave de la API de conexión:

    Captura de pantalla del cuadro de diálogo de aprovisionamiento automático cuando está configurado correctamente.

    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:

  1. Asegúrate de que el dispositivo iOS conectado local está desbloqueado.

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

    Captura de pantalla del destino de depuración elegido para el reinicio rápido.

  3. Después de implementar la aplicación, Visual Studio mostrará el cuadro de diálogo Conectando el depurador:

    Captura de pantalla del cuadro de diálogo que te pide que inicies la aplicación en el dispositivo.

    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:

Captura de pantalla del botón

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:

Captura de pantalla de cómo habilitar el reinicio rápido en Visual Studio.

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.