{"id":2100,"date":"2023-08-08T13:23:45","date_gmt":"2023-08-08T13:23:45","guid":{"rendered":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?p=2100"},"modified":"2023-08-09T08:32:48","modified_gmt":"2023-08-09T08:32:48","slug":"flutter-devops-azure-devops-y-microsoft-appcenter-parte-1","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/","title":{"rendered":"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1)"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2154\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg\" alt=\"\" width=\"917\" height=\"590\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg 917w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter-300x193.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter-768x494.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter-610x392.jpg 610w\" sizes=\"auto, (max-width: 917px) 100vw, 917px\" \/><\/p>\n<p>Tener un sistema que nos permita, de forma autom\u00e1tica y desatendida, poner en manos de usuarios nuestras aplicaciones mientras las desarrollamos es un punto b\u00e1sico hoy en d\u00eda dentro del <strong>ciclo de vida del desarrollo<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p>Estos usuarios pueden ser compa\u00f1eros de <em>Quality Assurance<\/em>, usuarios internos del cliente, o <em>stakeholders<\/em>. En cualquier caso, cuanto antes podamos brindarles la oportunidad de interactuar con la aplicaci\u00f3n, antes recibiremos informes de fallos <strong>(siempre hay fallos)<\/strong>, feedback de la experiencia, mejoras y todo tipo de comentarios que nos permitir\u00e1n validad y mejorar la app antes de lanzarla al mercado.<\/p>\n<p>En este art\u00edculo y <a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-2\/\" target=\"_blank\" rel=\"noopener\">en el pr\u00f3ximo<\/a>, vamos a seguir los pasos para desplegar a <strong>AppCenter<\/strong>\u00a0una aplicaci\u00f3n para <strong>iOS<\/strong>\u00a0y <strong>Android<\/strong>, desarrollada en <strong>Flutter<\/strong>\u00a0y usando <strong>Azure DevOps\u00a0<\/strong>como repositorio y sistema de compilaci\u00f3n.<\/p>\n<h2>Preparando AppCenter<\/h2>\n<p>En primer lugar vamos a comenzar con <strong>AppCenter<\/strong>. Este sitio web es donde centralizaremos toda la informaci\u00f3n final con nuestras aplicaciones, ser\u00e1 donde gestionar usuario, versiones de la app, an\u00e1lisis de distribuci\u00f3n o informes de errores.<\/p>\n<p>Entraremos en <a href=\"https:\/\/www.appcenter.ms\" target=\"_blank\" rel=\"noopener\">Microsoft AppCenter<\/a> con una cuenta <strong>GitHub<\/strong>, <strong>Microsoft<\/strong>, <strong>Google<\/strong> o <strong>Facebook<\/strong>.<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2105 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login.jpg\" alt=\"P\u00e1gina de login de apacentar\" width=\"600\" height=\"354\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login.jpg 1075w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login-300x177.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login-1024x606.jpg 1024w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login-768x454.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_login-610x361.jpg 610w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a>Creando las aplicaciones<\/p>\n<p>Una vez en la pantalla principal de AppCenter, crearemos una nueva aplicaci\u00f3n con el bot\u00f3n azul de nueva aplicaci\u00f3n y rellenaremos los datos que nos piden, presionando el bot\u00f3n <strong>Add new app<\/strong> o <strong>A\u00f1adir aplicaci\u00f3n<\/strong> al terminar:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newapp1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2109 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newapp1.jpg\" alt=\"Contenido del popup de nueva aplicaci\u00f3n\" width=\"598\" height=\"767\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newapp1.jpg 575w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newapp1-234x300.jpg 234w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/a><\/p>\n<p><strong>App name:<\/strong> El nombre que queremos que tenga nuestra aplicaci\u00f3n en AppCenter.<br \/>\n<strong>Icon:<\/strong> Un icono que podemos subir para AppCenter. Si no indicamos ninguno, se usar\u00e1 el del IPA o APK que publiquemos.<br \/>\n<strong>Release Type:<\/strong> Tipo de publicaci\u00f3n que estamos realizando: Alpha, Beta, Enterprise, Production, Store, Custom&#8230; no afecta en nada, es solo informativo.<br \/>\n<strong>OS:<\/strong> Sistema operativo de destino, hay que repetir este paso por cada sistema operativo que soportemos. En nuestro caso ser\u00e1 iOS y Android.<br \/>\n<strong>Platform:<\/strong> La plataforma usada para desarrollar la aplicaci\u00f3n, depende del sistema operativo seleccionado.<\/p>\n<p>En nuestro caso rellenaremos los datos de la siguiente forma:<\/p>\n<ul>\n<li><strong>iOS:<\/strong>\n<ul>\n<li><strong>App name:<\/strong> <em>Build test iOS<\/em>.<\/li>\n<li><strong>Icon:<\/strong> sin cambios, por defecto.<\/li>\n<li><strong>Release Type:<\/strong> <em>Beta<\/em>.<\/li>\n<li><strong>OS:<\/strong> iOS.<\/li>\n<li><strong>Platform:<\/strong> Objective-C \/ Swift.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Android:<\/strong>\n<ul>\n<li><strong>App name:<\/strong> <em>Build test Android<\/em>.<\/li>\n<li><strong>Icon:<\/strong> sin cambios, por defecto.<\/li>\n<li><strong>Release Type:<\/strong> <em>Beta<\/em>.<\/li>\n<li><strong>OS:<\/strong> Android.<\/li>\n<li><strong>Platform:<\/strong> Java \/ Kotlin.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><em><strong>Como AppCenter no soporta directamente Flutter, usamos como plataforma la nativa de cada sistema.<\/strong><\/em><\/p>\n<h3>Configurando el token de acceso<\/h3>\n<p>Ahora necesitamos obtener un token de API de cada aplicaci\u00f3n que hemos creado. Entramos primero en la aplicaci\u00f3n <em>Build test iOS<\/em> y vamos a los settings en el men\u00fa lateral izquierdo. Dentro de settings escogemos la opci\u00f3n App API tokens, presionando sobre el l\u00e1piz en la parte derecha y a continuaci\u00f3n en el bot\u00f3n azul <strong>New API token<\/strong>.<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newtoken.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2113 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newtoken.jpg\" alt=\"Contenido del popup de nuevo token\" width=\"576\" height=\"738\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newtoken.jpg 576w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/appcenter_newtoken-234x300.jpg 234w\" sizes=\"auto, (max-width: 576px) 100vw, 576px\" \/><\/a><\/p>\n<p>Introduciremos un nombre que describa el token, por ejemplo <strong>Azure devops build token<\/strong>, seleccionamos la opci\u00f3n <strong>Full Access<\/strong> y presionamos el bot\u00f3n azul <strong>Add new API token<\/strong>. Se nos mostrar\u00e1 un token en pantalla, <strong>es muy importante que lo copies y lo guardes por ahora, ya que una vez cerrado el popup, no podr\u00e1s volver a ver el token<\/strong>. Repetiremos la misma acci\u00f3n con la aplicaci\u00f3n *Build test Android* para obtener un token tambi\u00e9n para ella.<\/p>\n<p>Con esto ya hemos configurado todo lo necesario en <strong>AppCenter<\/strong> y podemos ir a <strong>Azure DevOps<\/strong> para continuar con el proceso.<\/p>\n<h2>Preparando Azure DevOps<\/h2>\n<p>Con Azure DevOps tenemos varios pasos a realizar:<\/p>\n<ul>\n<li>Configurar la conexi\u00f3n entre Azure DevOps y AppCenter.<\/li>\n<li>Configurar la librer\u00eda para almacenar los keystore, profiles y certificados necesarios.<\/li>\n<li>Instalar la extensi\u00f3n de compilaci\u00f3n de Flutter.<\/li>\n<li>Crear el archivo YAML de la build y a\u00f1adir el c\u00f3digo necesario.<\/li>\n<\/ul>\n<h3>Configurar la conexi\u00f3n entre Azure DevOps y AppCenter.<\/h3>\n<p>Para conectar Azure DevOps y AppCenter, vamos a ir al proyecto de Azure DevOps y dentro de \u00e9l, a los <strong>Project settings<\/strong> que encontraremos en el men\u00fa lateral izquierdo (en la parte inferior). Desde el men\u00fa de configuraci\u00f3n de la izquierda, en la secci\u00f3n de <strong>Pipelines,<\/strong> accedemos a la secci\u00f3n de <strong>Service connections<\/strong> y presionamos el bot\u00f3n gris <strong>New service connection<\/strong>. En el popup que aparece a la derecha buscamos el servicio <em>App Center<\/em> y presionamos <strong>Next<\/strong>:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2117 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection1.jpg\" alt=\"Seleccionando el servicio App Center\" width=\"465\" height=\"266\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection1.jpg 465w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection1-300x172.jpg 300w\" sizes=\"auto, (max-width: 465px) 100vw, 465px\" \/><\/a><\/p>\n<p>En la siguiente pantalla tendremos que configurar la conexi\u00f3n con el token que obtuvimos de <strong>AppCenter<\/strong> anteriormente:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2118 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection2.jpg\" alt=\"Configurando la conexi\u00f3n a AppCenter\" width=\"464\" height=\"625\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection2.jpg 464w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newconnection2-223x300.jpg 223w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><\/a><\/p>\n<p>Ahora copiaremos el token de la app de iOS que obtuvimos anteriormente y pondremos un nombre descriptivo. Podemos marcar el check de <strong>Grant access permission to all pipelines<\/strong> de forma que podamos usar esta conexi\u00f3n desde cualquier pipeline. Presionamos el bot\u00f3n azul <strong>Save<\/strong> y tendremos la nueva conexi\u00f3n en la lista de service connections.<\/p>\n<p>Repetimos el proceso con el token de android para tener ambas conexiones creadas y podremos continuar al siguiente paso.<\/p>\n<h3>Configurar la librer\u00eda de almacenamiento<\/h3>\n<p>Lo siguiente que necesitaremos es configurar la librer\u00eda de nuestros pipelines para almacenar ciertas variables y archivos de forma segura con el objetivo de usarlos durante la fase de compilaci\u00f3n y despliegue.<\/p>\n<p>Podemos acceder a la librer\u00eda desde el men\u00fa de <strong>Pipelines<\/strong> en el lateral izquierdo de Azure DevOps, en la opci\u00f3n <strong>Library<\/strong>:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2121 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library1.jpg\" alt=\"Accediendo a la librer\u00eda\" width=\"257\" height=\"285\" \/><\/a><\/p>\n<p>Al acceder a la librer\u00eda tendremos dos pesta\u00f1as, <strong>Variable groups<\/strong> y <strong>Secure files<\/strong>, vamos a comenzar por crear un nuevo Variable group haciendo click en el bot\u00f3n <strong>+ Variable group<\/strong> al lado de las pesta\u00f1as.<\/p>\n<p>En el nuevo variable group podremos a\u00f1adir un nombre y una descripci\u00f3n y variables de entorno que podremos usar en nuestra build. En este caso a\u00f1adiremos dos: <strong>configuration<\/strong> y <strong>sdk<\/strong> con los valores <em><strong>release<\/strong><\/em> y <em><strong>iphoneos<\/strong><\/em>:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2122 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2.jpg\" alt=\"Creando un nuevo grupo de variables\" width=\"942\" height=\"504\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2.jpg 942w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2-300x161.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2-768x411.jpg 768w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_library2-610x326.jpg 610w\" sizes=\"auto, (max-width: 942px) 100vw, 942px\" \/><\/a><\/p>\n<p>A continuaci\u00f3n\u00a0 configuramos los archivos seguros, seleccionando la pesta\u00f1a de <strong>secure files<\/strong>. Aqu\u00ed vamos a guardar 3 archivos:<\/p>\n<ul>\n<li>Provisioning profile de iOS.<\/li>\n<li>Certificado de firma de iOS.<\/li>\n<li>Keystore de android.<\/li>\n<\/ul>\n<p><em><strong>Si queremos tener diferentes builds por entornos (DEV, PRE, PRO) subiremos estos tres archivos por cada entorno.<\/strong><\/em><\/p>\n<p>Para a\u00f1adir estos archivos, haremos click en <strong>+ Secure file<\/strong> y arrastraremos o buscaremos el archivo que queramos subir:<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newsecurefile.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2124 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newsecurefile.jpg\" alt=\"Popup para subir un archivo seguro\" width=\"528\" height=\"247\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newsecurefile.jpg 528w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_newsecurefile-300x140.jpg 300w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/a><\/p>\n<p>Tras subir los 3 archivos indicados, ya podemos continuar al siguiente y \u00faltimo paso de configuraci\u00f3n, instalar la extensi\u00f3n de devops necesaria.<\/p>\n<h3>Instalar la extensi\u00f3n de compilaci\u00f3n de Flutter<\/h3>\n<p>Para compilar una aplicaci\u00f3n Flutter en un agente de <strong>Azure DevOps<\/strong> tenemos que instalar primero una extensi\u00f3n desde el <strong>Marketplace de Visual Studio<\/strong> para poder instalar Flutter y realizar la compilaci\u00f3n, ejecutar tests o lanzar comandos de flutter.<\/p>\n<p>La extensi\u00f3n que usaremos es <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=hey24sheep.flutter\" target=\"_blank\" rel=\"noopener\">Flutter Tasks de hey24sheep<\/a>, totalmente gratuita y solo hay que entrar en el link anterior y presionar el bot\u00f3n verde <strong>Get it free<\/strong>.<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2125 aligncenter\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension.jpg\" alt=\"Instalar extensi\u00f3n Flutter Tasks\" width=\"734\" height=\"210\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension.jpg 734w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension-300x86.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension-610x175.jpg 610w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops_installextension-350x100.jpg 350w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/a><\/p>\n<p>Cuando lo presiones te redigir\u00e1 a <strong>Azure DevOps<\/strong> donde tendr\u00e1s que hacer login con tu cuenta de DevOps con permisos para administrar extensiones. Una vez instalado, ya est\u00e1 todo listo para crear nuestro <strong>Pipeline<\/strong> y empezar a escribir el <em>YAML<\/em> necesario.<\/p>\n<h2>Pr\u00f3ximos pasos<\/h2>\n<p><a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-2\/\" target=\"_blank\" rel=\"noopener\">En el pr\u00f3ximo art\u00edculo<\/a>, veremos como configurar el pipeline de <strong>Azure DevOps<\/strong> y todas las tareas necesarias para compilar y desplegar nuestra aplicaci\u00f3n a <strong>Microsoft AppCenter\ud83d\udc49<a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-2\/\">Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 2)\u00a0<\/a><\/strong><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Tener un sistema que nos permita, de forma autom\u00e1tica y desatendida, poner en manos de usuarios nuestras aplicaciones mientras las desarrollamos es un punto b\u00e1sico hoy en d\u00eda dentro del ciclo de vida del desarrollo.<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":216,"featured_media":2154,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[122,130,4,3],"tags":[139,138,137,136],"class_list":["post-2100","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-flutter","category-microsoft-azure","category-movilidad","tag-agile","tag-appcenter","tag-devops","tag-flutter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1) - Piensa en software, desarrolla en colores<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1)\" \/>\n<meta property=\"og:description\" content=\"Tener un sistema que nos permita, de forma autom\u00e1tica y desatendida, poner en manos de usuarios nuestras aplicaciones mientras las desarrollamos es un punto b\u00e1sico hoy en d\u00eda dentro del ciclo de vida del desarrollo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Piensa en software, desarrolla en colores\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-08T13:23:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-09T08:32:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"917\" \/>\n\t<meta property=\"og:image:height\" content=\"590\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yeray Juli\u00e1n Ferreiro\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yeray Juli\u00e1n Ferreiro\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/\"},\"author\":{\"name\":\"Yeray Juli\u00e1n Ferreiro\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/13b6621c1e9a67b558944485a3cef541\"},\"headline\":\"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1)\",\"datePublished\":\"2023-08-08T13:23:45+00:00\",\"dateModified\":\"2023-08-09T08:32:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/\"},\"wordCount\":1205,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/07\\\/devops-flutter.jpg\",\"keywords\":[\"agile\",\"appcenter\",\"devops\",\"flutter\"],\"articleSection\":[\"Devops\",\"Flutter\",\"Microsoft Azure\",\"Movilidad\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/\",\"name\":\"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1) - Piensa en software, desarrolla en colores\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/07\\\/devops-flutter.jpg\",\"datePublished\":\"2023-08-08T13:23:45+00:00\",\"dateModified\":\"2023-08-09T08:32:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/13b6621c1e9a67b558944485a3cef541\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/07\\\/devops-flutter.jpg\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/07\\\/devops-flutter.jpg\",\"width\":917,\"height\":590},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/\",\"name\":\"Piensa en software, desarrolla en colores\",\"description\":\"Las ventajas que te ofrece Microsoft Azure y el mundo.NET\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/13b6621c1e9a67b558944485a3cef541\",\"name\":\"Yeray Juli\u00e1n Ferreiro\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g\",\"caption\":\"Yeray Juli\u00e1n Ferreiro\"},\"description\":\"Apasionado de los dispositivos m\u00f3viles y el desarrollo. Jugando con cacharritos desde las PDAs PSIOn Workabout y Windows PocketPC. Ex MVP de Windows Phone Dev, Windows Dev, Development Technologies y Xamarin.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/author\\\/yjulian\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1) - Piensa en software, desarrolla en colores","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/","og_locale":"es_ES","og_type":"article","og_title":"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1)","og_description":"Tener un sistema que nos permita, de forma autom\u00e1tica y desatendida, poner en manos de usuarios nuestras aplicaciones mientras las desarrollamos es un punto b\u00e1sico hoy en d\u00eda dentro del ciclo de vida del desarrollo.","og_url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/","og_site_name":"Piensa en software, desarrolla en colores","article_published_time":"2023-08-08T13:23:45+00:00","article_modified_time":"2023-08-09T08:32:48+00:00","og_image":[{"width":917,"height":590,"url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg","type":"image\/jpeg"}],"author":"Yeray Juli\u00e1n Ferreiro","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Yeray Juli\u00e1n Ferreiro","Tiempo de lectura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#article","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/"},"author":{"name":"Yeray Juli\u00e1n Ferreiro","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/13b6621c1e9a67b558944485a3cef541"},"headline":"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1)","datePublished":"2023-08-08T13:23:45+00:00","dateModified":"2023-08-09T08:32:48+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/"},"wordCount":1205,"commentCount":0,"image":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg","keywords":["agile","appcenter","devops","flutter"],"articleSection":["Devops","Flutter","Microsoft Azure","Movilidad"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/","name":"Flutter DevOps: Azure DevOps y Microsoft AppCenter (Parte 1) - Piensa en software, desarrolla en colores","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#primaryimage"},"image":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg","datePublished":"2023-08-08T13:23:45+00:00","dateModified":"2023-08-09T08:32:48+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/13b6621c1e9a67b558944485a3cef541"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/flutter-devops-azure-devops-y-microsoft-appcenter-parte-1\/#primaryimage","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg","contentUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2023\/07\/devops-flutter.jpg","width":917,"height":590},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/","name":"Piensa en software, desarrolla en colores","description":"Las ventajas que te ofrece Microsoft Azure y el mundo.NET","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/13b6621c1e9a67b558944485a3cef541","name":"Yeray Juli\u00e1n Ferreiro","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/43aa43675361343e0c3a136afdfef5536b39d4c70ceb548df8ada523d10811a6?s=96&d=mm&r=g","caption":"Yeray Juli\u00e1n Ferreiro"},"description":"Apasionado de los dispositivos m\u00f3viles y el desarrollo. Jugando con cacharritos desde las PDAs PSIOn Workabout y Windows PocketPC. Ex MVP de Windows Phone Dev, Windows Dev, Development Technologies y Xamarin.","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/author\/yjulian\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/2100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/users\/216"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/comments?post=2100"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/2100\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media\/2154"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media?parent=2100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/categories?post=2100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/tags?post=2100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}