Distribución a través del App Store

Una vez que se ha desarrollado una aplicación de Xamarin.iOS, el siguiente paso del ciclo de vida de desarrollo de software es distribuirla a los usuarios mediante iTunes App Store. Es la forma más habitual de distribuir aplicaciones. Al publicar una aplicación en el App Store de Apple, se puede poner a disposición de los consumidores de todo el mundo.

Importante

Apple ha comunicado que, a partir de marzo de 2019, las aplicaciones y actualizaciones que se envíen al App Store deberán haberse compilado con el SDK de iOS 12.1 o posterior, incluido en Xcode 10.1 y versiones posteriores. Las aplicaciones también deberán admitir los tamaños de pantalla del iPhone XS y el iPad Pro de 12.9".

Importante

Si busca recursos con respecto a la advertencia de desuso de UIWebView (ITMS-90809) mientras usa Xamarin.Forms, consulte la documentación de Xamarin.Forms WebView.

Distribución de una aplicación: al igual que al desarrollar una aplicación, exige que se aprovisionen las aplicaciones mediante el perfil de aprovisionamiento adecuado. Los perfiles de aprovisionamiento son archivos que contienen información de firma de código, así como la identidad de la aplicación y el mecanismo de distribución previsto. También contienen información sobre en qué dispositivos se puede implementar la aplicación para la distribución que no se realice a través del App Store.

Importante

Para usar iTunes Connect y, por lo tanto, publicar una aplicación en App Store, debe formar parte de un programa para desarrolladores individual o empresarial de Apple. Si es miembro de un programa para desarrolladores empresariales de Apple no podrá seguir los pasos de esta página.

Aprovisionamiento de una aplicación para su distribución en el App Store

Independientemente de cómo piense publicar una aplicación de Xamarin.iOS, tendrá que crear un perfil de aprovisionamiento de distribución específico para ella. Este perfil permite que la aplicación se firme digitalmente para su publicación de modo que se pueda instalar en un dispositivo iOS. Del mismo modo que un perfil de aprovisionamiento de desarrollo, un perfil de distribución incluirá lo siguiente:

  • Un identificador de aplicación
  • Un certificado de distribución

Puede seleccionar el identificador de la aplicación y los dispositivos que usó para el perfil de aprovisionamiento de desarrollo, pero si todavía no tiene uno, tendrá que crear un certificado de distribución para identificar a la organización al enviar la aplicación a la tienda de aplicaciones. En la siguiente sección se explican los pasos para crear un certificado de distribución.

Nota:

Solo los agentes de equipo y los administradores pueden crear certificados de distribución y perfiles de aprovisionamiento.

Creación de un certificado de distribución

  1. Vaya a la sección Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles) del Centro de usuarios registrados de Apple Developer.

  2. En Certificates (Certificados), seleccione Production (Producción).

  3. Haga clic en el botón + para crear un nuevo certificado.

  4. En el encabezado Producción, seleccione App Store and Ad Hoc (App Store y ad hoc):

    Select App Store and Ad Hoc

  5. Haga clic en Continuar y siga las instrucciones para crear una solicitud de firma de certificado (CSR) a través de Acceso a llaves:

    Create a Certificate Signing Request via Keychain Access

  6. Una vez que haya creado la CSR tal como se indica, haga clic en Continuar y cárguela en el Centro de usuarios registrados:

    Upload the CSR to the Member Center

  7. Haga clic en Generar para crear el certificado.

  8. Por último, descargue el certificado completado y haga doble clic en el archivo para instalarlo.

  9. En este punto el certificado debería estar instalado en el equipo, aunque es posible que tenga que actualizar sus perfiles para asegurarse de que sean visibles en Xcode.

Como alternativa, se puede solicitar un certificado mediante el cuadro de diálogo Preferencias de Xcode. Para ello, siga estos pasos:

  1. Seleccione el equipo y haga clic en Manage Certificates… (Administrar certificados…): Select the team and View Details

  2. Luego, haga clic en el botón Crear situado junto a iOS Distribution Certificate (Certificado de distribución de iOS): Create an iOS Distribution Certificate

  3. Según los privilegios del equipo, se generará la identidad de firma, tal como se muestra a continuación, o bien es posible que tenga que esperar hasta que un administrador o agente de equipo la apruebe: The signing identity will be generated and a dialog displayed

Creación de un perfil de distribución

Crear un identificador de aplicación

Al igual que con cualquier otro perfil de aprovisionamiento que cree, se necesita un identificador de aplicación para identificar la aplicación que va a distribuir al dispositivo del usuario. Si aún no lo ha creado, siga estos pasos para hacerlo:

  1. En el Centro de usuarios registrados de Apple Developer, vaya a la sección Certificate, Identifiers and Profiles (Certificado, identificadores y perfiles). Seleccione App IDs (Identificadores de aplicación) en Identificadores.
  2. Haga clic en el botón + y proporcione un Nombre que la identifique en el portal.
  3. El prefijo de la aplicación ya debería estar establecido como el identificador del equipo y no se puede cambiar. Seleccione un identificador de aplicación explícito o comodín y especifique un identificador de paquete en un formato DNS inverso como:
    • Explícito: com.[nombreDeDominio].[nombreDeAplicación]
    • Comodín: com.[nombreDeDominio].*
  4. Seleccione los App Services que la aplicación necesite.
  5. Haga clic en el botón Continuar y siga las instrucciones en pantalla para crear el identificador de aplicación.

Creación de un perfil de aprovisionamiento

Una vez que tenga los componentes necesarios para crear un perfil de distribución, siga estos pasos para crearlo:

  1. Vuelva al portal de aprovisionamiento de Apple y seleccione Aprovisionamiento>Distribución:

    RSelect Provisioning > Distribution

  2. Haga clic en el botón + y seleccione el tipo de perfil de distribución que quiere crear como App Store:

    Create an App Store distribution profile

  3. Haga clic en el botón Continuar y seleccione el identificador de la aplicación en la lista desplegable para la que quiere crear un perfil de distribución:

    Select App ID from the dropdown list

  4. Haga clic en el botón Continuar y seleccione el certificado necesario para firmar la aplicación:

    Select the certificate required to sign the application

  5. Haga clic en el botón Continuar y seleccione los dispositivos iOS en los que se podrá ejecutar la aplicación de Xamarin.iOS:

    Select the iOS devices that app will be allowed to run on

  6. Haga clic en el botón Continuar y escriba un Nombre para el nuevo perfil de distribución:

    Enter a Name for the new Distribution Profile

  7. Haga clic en el botón Generar para crear el nuevo perfil y finalizar el proceso.

Es posible que tenga que salir de Visual Studio para Mac y hacer que Xcode actualice su lista de identidades de firma y perfiles de aprovisionamiento disponibles (con las instrucciones de la sección Solicitud de identidades de firma) para que un nuevo perfil de distribución esté disponible en Visual Studio para Mac.

Selección de un perfil de distribución en un proyecto de Xamarin.iOS

Cuando esté listo para realizar una compilación final de una aplicación de Xamarin.iOS para su venta en iTunes App Store, seleccione el perfil de distribución que creó arriba.

En Visual Studio para Mac, haga lo siguiente:

  1. Haga doble clic en el nombre del proyecto en el Explorador de soluciones para abrirlo para su edición.

  2. Seleccione Firma del lote de iOS y Versión | iPhone en el elemento desplegable Configuración:

    Select Release | iPhone from the Configuration dropdown

  3. En la mayoría de los casos, la Identidad de firma y el Perfil de aprovisionamiento pueden dejarse en su valor predeterminado Automático y Visual Studio para Mac elegirá el perfil correcto según el identificador de paquete de Info.plist:

    The Signing Identity and the Provisioning Profile set to the default values of Automatic

  4. Si fuera necesario, seleccione la identidad de firma y el perfil de distribución (creado anteriormente) en las listas desplegables:

    Select the Signing Identity and Distribution Profiles

  5. Haga clic en el botón Aceptar para guardar los cambios.

Configuración de la aplicación en iTunes Connect

Una vez que la aplicación se ha aprovisionado correctamente, el siguiente paso es configurar las aplicaciones en iTunes Connect, que es un conjunto de herramientas basadas en web para, entre otras cosas, administrar aplicaciones de iOS en el App Store.

La aplicación de Xamarin.iOS deberá estar correctamente instalada y configurada en iTunes Connect para que se pueda enviar a Apple para su revisión y publicación como una aplicación gratuita o para su venta en el App Store.

Para obtener información más detallada, vea la documentación Configuración de una aplicación en iTunes Connect.

Envío de una aplicación a iTunes Connect

Una vez que la aplicación está firmada con el perfil de aprovisionamiento de distribución y creada en iTunes Connect, su archivo binario se carga en Apple para su revisión. Tras una revisión correcta por parte de Apple, se publica en el App Store.

Para más información sobre la publicación de aplicaciones en el App Store, vea Publicación en el App Store.

Copia automática de lotes de aplicaciones .app en Windows

Al compilar aplicaciones para iOS en Visual Studio y el agente de compilación para Mac, el lote .app no se vuelve a copiar en la máquina de Windows. Las herramientas de Xamarin para Visual Studio 7.4 agregan una nueva propiedad CopyAppBundle que permite a las compilaciones de integración continua copiar lotes .app en Windows.

Para utilizar esta funcionalidad, agregue la propiedad CopyAppBundle al elemento .csproj, en el grupo de propiedades en el que quiera aplicarla. En el ejemplo siguiente se muestra cómo copiar el lote .app en el equipo de Windows para una compilación Depuración que tiene como objetivo iPhoneSimulator:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
    <CopyAppBundle>true</CopyAppBundle>
</PropertyGroup>

Resumen

En este artículo se ha hablado de los componentes fundamentales para la preparación de una aplicación de Xamarin.iOS para su distribución en el App Store.