{"id":32172,"date":"2025-02-20T16:03:15","date_gmt":"2025-02-20T15:03:15","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=32172"},"modified":"2025-02-20T16:03:16","modified_gmt":"2025-02-20T15:03:16","slug":"provisioning-profiles-para-apps-macos","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/","title":{"rendered":"Provisioning Profiles para apps macOS"},"content":{"rendered":"\n<p>Continuando con nuestra serie de art\u00edculos sobre apps macOS, ya vimos como prepararlas para su distribuci\u00f3n, c\u00f3mo enviarlas a AppStore Connect (esto es, el paso previo requerido antes de que la app est\u00e9 disponible en la Mac App Store)\u2026 y ahora veremos como utilizar los <a href=\"https:\/\/developer.apple.com\/help\/account\/manage-profiles\/create-a-development-provisioning-profile\/\">Provisioning Profiles<\/a> requeridos para que dichas apps puedan ser probadas por otros desarrolladores y usuarios mediante la app <a href=\"https:\/\/developer.apple.com\/testflight\/\">TestFlight<\/a>.<\/p>\n\n\n\n<p>Nos centraremos en dos tipos de Provisioning Profiles: Development y Distribution. Los perfiles de aprovisionamiento de desarrollo son los necesarios para aquellas compilaciones de la app enviadas a AppStore Connect pero que no queremos hacer p\u00fablicas en la Mac App Store, sino simplemente que est\u00e9n disponibles para que otras personas puedan probarlas de modo que nos reporten bugs, comentarios, etc. En este caso, aseg\u00farate de que el valor de Stage Code en el IDE de Xojo (bajo Build Settings &gt; Shared) se corresponda con &#8220;Devlopment&#8221;, &#8220;Alpha&#8221; o bien &#8220;Beta&#8221;.<\/p>\n\n\n\n<p>Por otra parte, los perfiles de aprovisionamiento de distribuci\u00f3n son los requeridos para aquellas apps enviadas a la AppStore Connect, que ser\u00e1n publicadas en la Mac App Store (tras pasar el correspondiente <a href=\"https:\/\/developer.apple.com\/distribute\/app-review\/\">proceso de revisi\u00f3n por parte de Apple<\/a>), y que tambi\u00e9n queremos que est\u00e9n disponibles para que puedan ser probadas por otras personas mediante TestFlight. En este caso, aseg\u00farate de que el valor de Stage Code se corresponda con &#8220;Final&#8221; en el IDE de Xojo bajo Build Settings &gt; Shared.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-como-crear-perfiles-de-aprovisionamiento\">Como crear Perfiles de Aprovisionamiento<\/h2>\n\n\n\n<p>Tanto si quieres crear un perfil de aprovisionamiento de Desarrollo como de Distribuci\u00f3n, esto ha de llevarse a cabo desde el <a href=\"https:\/\/developer.apple.com\">sitio web Apple Developer<\/a> &nbsp;(por supuesto, necesitar\u00e1s contar con una membres\u00eda de desarrollador Apple de pago).<\/p>\n\n\n\n<p>En este ejemplo crearemos un perfil de Aprovisionamiento de Distribuci\u00f3n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utiliza tus credenciales para acceder a la web de Desarrolladores de Apple.<\/li>\n\n\n\n<li>Selecciona la opci\u00f3n Profiles ubicada bajo la secci\u00f3n &#8220;Certificates, IDs &amp; Profiles&#8221;.<\/li>\n\n\n\n<li>Haz clic en el icono &#8220;+&#8221; situado a la derecha de la cabecera &#8220;Profiles&#8221;.<\/li>\n\n\n\n<li>A continuaci\u00f3n, selecciona la opci\u00f3n &#8220;Mac AppStore Connect&#8221; situada bajo la secci\u00f3n Distribution, y haz clic en el bot\u00f3n &#8220;Continue&#8221;.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/1-TypeOfProfile.png\"><img decoding=\"async\" src=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/1-TypeOfProfile.png\" alt=\"\" class=\"wp-image-13153\"\/><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Selecciona la opci\u00f3n &#8220;Mac&#8221; bajo la secci\u00f3n Profile Type, y selecciona el valor App ID de entre los disponibles en el men\u00fa desplegable asociado. Aseg\u00farate de que el seleccionado (sin el valor entre par\u00e9ntesis) se corresponde con el introducido bajo Build Settings > macOS > Bundle Identifier. A continuaci\u00f3n, haz clic en el bot\u00f3n &#8220;Continue&#8221;.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/2-SelectAppID.png\"><img decoding=\"async\" src=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/2-SelectAppID.png\" alt=\"\" class=\"wp-image-13154\"\/><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Por ejemplo, el seleccionado en la captura de pantalla (esto es, BW7PU32485.com.aprendexojo.vcardtoqr) se corresponde con el utilizado en el campo Bundle Identifier para la app en el IDE de Xojo (com.aprendexojo.vcardtoqr).<\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A continuaci\u00f3n, selecciona el certificado de &#8220;Distribuci\u00f3n&#8221; que se incluir\u00e1 en el perfil de aprovisionamiento generado. El certificado seleccionado debe de ser el mismo introducido en el campo Developer ID cuando se compila la app desde el IDE de Xojo (Build Settings > macOS > Sign). Por ejemplo, en mi caso utilizar\u00e9 el valor (sin las comillas) &#8220;Apple Distribution: Francisco Javier Rodriguez Menendez (BW7PU32485)&#8221; como valor de Developer ID en Xojo, de modo que seleccionar\u00e9 el mismo certificado de Distribuci\u00f3n aqu\u00ed. A continuaci\u00f3n, haz clic en el bot\u00f3n &#8220;Continue&#8221;.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/3-SelectCertificate.png\"><img decoding=\"async\" src=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/3-SelectCertificate.png\" alt=\"\" class=\"wp-image-13155\"\/><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Da nombre al perfil de aprovisionamiento utilizando un nombre significativo, de modo que puedas distinguirlo f\u00e1cilmente de entre todos los generados. A continuaci\u00f3n, haz clic en el bot\u00f3n &#8220;Generate&#8221; para que se genere el perfil de aprovisionamiento y se descargue a tu Mac (probablemente en la carpeta Descargas).<\/li>\n\n\n\n<li>El archivo de perfil de aprovisionamiento descargado tendr\u00e1 el mismo nombre que el introducido en el paso anterior. Selecci\u00f3nalo y utiliza las opciones del Finder para cambiar su nombre a &#8220;embedded.provisionprofile&#8221;.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-anadir-el-perfil-de-aprovisionamiento-al-proyecto\">A\u00f1adir el Perfil de Aprovisionamiento al proyecto<\/h2>\n\n\n\n<p>Los perfiles de aprovisionamiento de macOS han de a\u00f1adirse a la carpeta Contents del bundle de la app, y esto es algo que podemos hacer muy f\u00e1cilmente desde el IDE de Xojo.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Abre el proyecto de tu aplicaci\u00f3n en el IDE de Xojo en el caso de que no estuviese ya abierto, y a\u00f1ade un nuevo paso de compilaci\u00f3n Copy Files bajo Build Settings > MacOS.<\/li>\n\n\n\n<li>A\u00f1ade el archivo &#8220;embedded.provisionprofile&#8221; al paso de compilaci\u00f3n CopyFile reci\u00e9n a\u00f1adido.<\/li>\n\n\n\n<li>Selecciona la opci\u00f3n &#8220;Contents Folder&#8221; en el men\u00fa desplegable Destination correspondiente al Panel Inspector asociado para el paso de compilaci\u00f3n Copy Files.<\/li>\n\n\n\n<li>Selecciona la opci\u00f3n &#8220;Release&#8221; en el men\u00fa desplegable correspondiente a &#8220;Applies To&#8221; en el Panel Inspector asociado con el paso de compilaci\u00f3n CopyFiles; de esta forma, el archivo s\u00f3lo se copiar\u00e1 a la carpeta Contents cuando la app se compile como aplicaci\u00f3n independiente (esto es, cuando no se ejecute desde el IDE).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-anadir-nuevas-entradas-al-archivo-entitlements\">A\u00f1adir nuevas entradas al archivo Entitlements<\/h2>\n\n\n\n<p>Para que el Perfil de Aprovisionamiento sea reconocido por TestFlight cuando se env\u00ede el paquete de la app a la AppStore Connect hemos de a\u00f1adir un par de entradas adicionales a nuestro archivo Entitlements (por favor, vuelve a consultar el art\u00edculo &#8220;Como subir tus macOS apps a la AppStore Connect&#8221;).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Identificador de Aplicaci\u00f3n Completo<\/strong>. Utiliza la clave &#8220;com.apple.application-identifier&#8221; para la nueva entrada. El valor debe ser el identificador Application Bundle (en nuestro ejemplo, com.aprendexojo.vcardtoqr) precedido con el valor del Team ID del Certificado que hemos utilizado tanto para firmar nuestra app como el propio perfil de aprovisionamiento. En nuestro ejemplo, dicho valor ser\u00eda BW7PU32485. Por tanto el valor de tipo &#8220;string&#8221; para esta clave ser\u00eda BW7PU32485.com.aprendexojo.vcardtoqr<\/li>\n\n\n\n<li><strong>Team ID<\/strong>. Realmente simple. Hemos de utilizar la clave &#8220;com.apple.developer.team-identifier&#8221; para esta entrada, cuyo valor (siguiendo con nuestro ejemplo) es simplemente el Team ID del certificado: BW7PU32485.<\/li>\n<\/ul>\n\n\n\n<p>Es decir, el archivo Entitlements final tendr\u00eda el siguiente aspecto para la app de ejemplo:<\/p>\n\n\n\n<p>&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE plist PUBLIC \"-\/\/Apple\/\/DTD PLIST 1.0\/\/EN\" \"http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd\"&gt;\n&lt;plist version=\"1.0\"&gt;\n&lt;dict&gt;\n\t&lt;key&gt;com.apple.security.app-sandbox&lt;\/key&gt;\n\t&lt;true\/&gt;\n\t&lt;key&gt;com.apple.security.files.user-selected.read-write&lt;\/key&gt;\n\t&lt;true\/&gt;\n\t&lt;key&gt;com.apple.application-identifier&lt;\/key&gt;\n\t&lt;string&gt;BW7PU32485.com.aprendexojo.vcardtoqr&lt;\/string&gt;\n\t&lt;key&gt;com.apple.developer.team-identifier&lt;\/key&gt;\n\t&lt;string&gt;BW7PU32485&lt;\/string&gt;\n&lt;\/dict&gt;\n&lt;\/plist&gt;\n<\/pre>\n\n\n\n<p>Esto es: Sandboxing activado, m\u00e1s la capacidad de que nuestra app pueda leer y escribir los archivos seleccionados por el usuario, m\u00e1s las dos entradas requeridas para que el perfil de aprovisionamiento sea reconocido por TestFlight cuando se env\u00ede el paquete a la AppStore Connect.<\/p>\n\n\n\n<p>Guarda los cambios en el archivo de entitlements modificado (en nuestro ejemplo, con el nombre &#8220;myEntitlements.entitlements&#8221;).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-re-firmar-re-empaquetar-y-subir-el-paquete\">Re-Firmar, re-empaquetar y subir el paquete<\/h2>\n\n\n\n<p>Si has seguido los dos art\u00edculos previos, probablemente ya hayas adivinado lo que toca ahora. \u00a1Efectivamente!, dado que hemos modificado nuestro archivo &#8220;myEntitlements.entitlements&#8221;, hemos de volver a firmar el bundle de la app, empaquetarlo de nuevo y subirlo a la AppStore Connect.<\/p>\n\n\n\n<p>Por tanto, para volver a firmar, teclea lo siguiente en una nueva ventana del Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">codesign --force --timestamp --entitlements path-to-your-myEntitlements.entitlements-file  -s \"Apple Distribution: whatever-name-you-use (BZXXXXXXX)\" path-to-the-bundle-of-the-compiled-app.app\n<\/pre>\n\n\n\n<p>Para volver a crear el paquete a partir del bundle de la app, teclea el siguiente comando desde el Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">productbuild --sign \"3rd Party Mac Developer Installer: whatever-name-you-use (BZXXXXXXX)\"  --component path-to-the-bundle-of-the-compiled-app.app  \/Applications path-to-the-generated-package-file.pkg\n<\/pre>\n\n\n\n<p>Y para volver a subir el paquete a la AppStore Connect, teclea el siguiente comando en la ventana del Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xcrun altool  --upload-package path-to-the-package-file.pkg -u your-apple-developer-login-id-goes-here -p \"your-app-specific-password-goes-here\" --type osx -apple-id \"6111111111\" --bundle-id \"com.yourcomany.yourIdentifier\" --bundle-short-version-string \"current-short-value\" --bundle-version \"current-version-value\"\n<\/pre>\n\n\n\n<p>Si todo ha ido bien, abre tu navegador Web favorito y dir\u00edgete al sitio web http:\/\/appstoreconnect.apple.com, selecciona tu app en la secci\u00f3n Apps y hac clic en el apartado TestFlight. Deber\u00edas de poder ver la build reci\u00e9n subida, lista para testear.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/4-AddedToTestFlight.png\"><img decoding=\"async\" src=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/4-AddedToTestFlight.png\" alt=\"\" class=\"wp-image-13156\"\/><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusiones\">Conclusiones<\/h2>\n\n\n\n<p>Como hemos visto, a\u00f1adir los Perfiles de Aprovisionamiento a las apps macOS enviadas a la AppStore Connect, de modo que puedan ser probadas por otras personas mediante TestFlight, s\u00f3lo requiere de un poco de preparaci\u00f3n previa para la generaci\u00f3n del perfil de aprovisionamiento propiamente dicho, copiar dicho archivo en el proyecto de Xojo utilizando un paso de compilaci\u00f3n CopyFiles y, luego, a\u00f1adir un par de entradas adicionales al archivo de Entitlements.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/5-macOSTestFlightApp.png\"><img decoding=\"async\" src=\"https:\/\/www.aprendexojo.com\/wp-content\/uploads\/2025\/01\/5-macOSTestFlightApp.png\" alt=\"\" class=\"wp-image-13157\"\/><\/a><\/figure><\/div>\n\n\n<p><\/p>\n\n\n\n<p>Una vez que se ha hecho todo lo anterior, tus beta-testers podr\u00e1n utilizar la app de macOS TestFlight para descargar y probar tus nuevas versiones, de modo que puedan reportar informes sobre bugs, informes de cuelgues de la app, y otro tipo de comentarios sobre ella\u2026&nbsp;antes de que sea p\u00fablica en la Mac App Store.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuando con nuestra serie de art\u00edculos sobre apps macOS, ya vimos como prepararlas para su distribuci\u00f3n, c\u00f3mo enviarlas a AppStore Connect (esto es, el paso previo requerido antes de que la app est\u00e9 disponible en la Mac App Store)\u2026 y ahora veremos como utilizar los Provisioning Profiles requeridos para que dichas apps puedan ser probadas&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\">Read more<\/a><\/p>\n","protected":false},"author":269,"featured_media":32197,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10648],"tags":[],"collections":[],"class_list":{"0":"post-32172","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-lenguajes-de-programacion","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Provisioning Profiles para apps macOS - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Provisioning Profiles para apps macOS\" \/>\n<meta property=\"og:description\" content=\"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-20T15:03:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-20T15:03:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Javier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Bloguintosh\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Javier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\"},\"author\":{\"name\":\"Javier\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8647944f90883a9526705a0998ffbe1a\"},\"headline\":\"Provisioning Profiles para apps macOS\",\"datePublished\":\"2025-02-20T15:03:15+00:00\",\"dateModified\":\"2025-02-20T15:03:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\"},\"wordCount\":1359,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp\",\"articleSection\":[\"Lenguajes de programaci\u00f3n\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\",\"name\":\"Provisioning Profiles para apps macOS - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp\",\"datePublished\":\"2025-02-20T15:03:15+00:00\",\"dateModified\":\"2025-02-20T15:03:16+00:00\",\"description\":\"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp\",\"width\":1792,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Lenguajes de programaci\u00f3n\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Provisioning Profiles para apps macOS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8647944f90883a9526705a0998ffbe1a\",\"name\":\"Javier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7d8697b4578139fa315e8e8058abaf814935c00af9f9f5faac583bdef6e4c334?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7d8697b4578139fa315e8e8058abaf814935c00af9f9f5faac583bdef6e4c334?s=96&d=mm&r=g\",\"caption\":\"Javier\"},\"description\":\"Software Engineer at Xojo, Inc.\",\"sameAs\":[\"https:\/\/www.xojo.com\",\"https:\/\/x.com\/Bloguintosh\",\"http:\/\/youtube.com\/goxojo\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/javier\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Provisioning Profiles para apps macOS - Codemotion Magazine","description":"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.","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:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/","og_locale":"en_US","og_type":"article","og_title":"Provisioning Profiles para apps macOS","og_description":"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2025-02-20T15:03:15+00:00","article_modified_time":"2025-02-20T15:03:16+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp","type":"image\/webp"}],"author":"Javier","twitter_card":"summary_large_image","twitter_creator":"@Bloguintosh","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Javier","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/"},"author":{"name":"Javier","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8647944f90883a9526705a0998ffbe1a"},"headline":"Provisioning Profiles para apps macOS","datePublished":"2025-02-20T15:03:15+00:00","dateModified":"2025-02-20T15:03:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/"},"wordCount":1359,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp","articleSection":["Lenguajes de programaci\u00f3n"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/","name":"Provisioning Profiles para apps macOS - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp","datePublished":"2025-02-20T15:03:15+00:00","dateModified":"2025-02-20T15:03:16+00:00","description":"Aprende a usar los Provisioning Profiles en Xojo para probar apps macOS en TestFlight y publicarlas en la Mac App Store.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp","width":1792,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/provisioning-profiles-para-apps-macos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Lenguajes de programaci\u00f3n","item":"https:\/\/www.codemotion.com\/magazine\/es\/lenguajes-de-programacion\/"},{"@type":"ListItem","position":3,"name":"Provisioning Profiles para apps macOS"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/8647944f90883a9526705a0998ffbe1a","name":"Javier","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7d8697b4578139fa315e8e8058abaf814935c00af9f9f5faac583bdef6e4c334?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d8697b4578139fa315e8e8058abaf814935c00af9f9f5faac583bdef6e4c334?s=96&d=mm&r=g","caption":"Javier"},"description":"Software Engineer at Xojo, Inc.","sameAs":["https:\/\/www.xojo.com","https:\/\/x.com\/Bloguintosh","http:\/\/youtube.com\/goxojo"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/javier\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-600x600.webp","author_info":{"display_name":"Javier","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/javier\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2025\/02\/DALL\u00b7E-2025-02-20-15.57.09-An-engraving-style-wide-illustration-representing-provisioning-profiles-for-macOS-apps.-The-image-features-a-vintage-hand-etched-MacBook-displaying-a-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"Javier","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/javier\/"},"uagb_comment_info":0,"uagb_excerpt":"Continuando con nuestra serie de art\u00edculos sobre apps macOS, ya vimos como prepararlas para su distribuci\u00f3n, c\u00f3mo enviarlas a AppStore Connect (esto es, el paso previo requerido antes de que la app est\u00e9 disponible en la Mac App Store)\u2026 y ahora veremos como utilizar los Provisioning Profiles requeridos para que dichas apps puedan ser probadas&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/269"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=32172"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32172\/revisions"}],"predecessor-version":[{"id":32198,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/32172\/revisions\/32198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/32197"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=32172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=32172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=32172"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=32172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}