Comparteix a través de


Firma de la aplicación móvil

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Al desarrollar una aplicación para sistemas operativos Android o Apple, tendrá que administrar certificados de firma y, en el caso de las aplicaciones de Apple, perfiles de aprovisionamiento. En este artículo se describe cómo administrarlos de forma segura para firmar y aprovisionar la aplicación.

Sugerencia

Use un agente de compilación de Linux, macOS o Windows hospedado por Microsoft o configure su propio agente. Consulte entes de compilación y versión.

En este artículo se describe:

Firmar la aplicación Android

Siga estos pasos para firmar la aplicación Android y mantener seguro el certificado de firma:

  1. En primer lugar, obtenga un archivo de almacén de claves que contenga el certificado de firma. En la documentación de Android se describe el proceso de generación de un archivo de almacén de claves y su clave correspondiente.

  2. Cree la canalización de compilación a partir de la plantilla de compilación de Android o Xamarin.Android. O bien, si ya tiene una canalización de compilación, agregue la tarea Firma de Android después de la tarea que compila el APK.

  3. Busque la casilla Firmar el APK de la tarea Firma de Android y actívela.

  4. Junto al campo Archivo de almacén de claves, seleccione el icono de configuración y cargue el archivo de almacén de claves en la biblioteca de archivos seguros. Durante la carga, el almacén de claves se cifrará y almacenará de forma segura.

  5. Una vez cargado el almacén de claves en la biblioteca de archivos seguros, selecciónelo en la lista desplegable Archivo de almacén de claves.

  6. Vaya a la pestaña Variables y agregue las siguientes variables. En su columna Valor, escriba la contraseña del almacén de claves, el alias de clave y la contraseña de clave.

    • keystore-password: contraseña para el archivo de almacén de claves sin cifrar. Asegúrese de seleccionar el icono de bloqueo. Así la contraseña estará protegida y oculta en los registros.

    • key-alias: alias de clave para el certificado de firma que generó.

    • key-password: la contraseña de la clave asociada al alias especificado. De nuevo, asegúrese de seleccionar el icono de bloqueo.

      Variables de firma de Android

  7. Regrese a la pestaña Tareas y haga referencia a los nombres de las variables recién creadas en las opciones de firma.

    Valores de entrada de firma de Android

Guarde la canalización de compilación y listo. Cualquier agente de compilación ahora podrá firmar de forma segura la aplicación sin tener que administrar los certificados en la propia máquina de compilación.

Firma de la aplicación Apple iOS, macOS, tvOS o watchOS

Para que la compilación de Xcode o Xamarin.iOS firme y aprovisione la aplicación, necesita acceder al certificado de firma P12 y a uno o varios perfiles de aprovisionamiento. En las secciones siguientes se explica cómo obtener estos archivos.

Obtención del certificado de firma P12

Después de crear el certificado de firma de desarrollo o distribución, expórtelo a un archivo .p12 mediante Xcode o la aplicación Keychain Access en macOS.

  1. Para exportarlo con Xcode 8 o inferior, vaya a Xcode>Preferencias...>Cuentas y seleccione la cuenta de desarrollador de Apple.

  2. Seleccione Ver detalles..., haga clic con el botón derecho en la identidad de firma que quiere exportar y seleccione Exportar....

  3. Escriba un nombre de archivo y una contraseña. Anote la contraseña, ya que la necesitará más adelante.

    Exportación del certificado de Xcode

  4. Como alternativa, siga un proceso similar mediante la aplicación Keychain Access en macOS o genere un certificado de firma en Windows. Si prefiere este método, use el procedimiento descrito en este artículo.

Obtención del perfil de aprovisionamiento

Puede descargar el perfil de aprovisionamiento de aplicaciones desde el portal para desarrolladores de Apple, a menos que la aplicación use la firma automática. Aprenda a descargar un perfil de aprovisionamiento en el portal para desarrolladores de Apple.

También puede usar Xcode para acceder a los instalados en el equipo Mac.

  1. Con Xcode 8 o inferior, vaya a Xcode>Preferencias...>Cuentas y seleccione la cuenta de desarrollador de Apple.

  2. Haga clic con el botón derecho en el perfil de aprovisionamiento que quiere usar y seleccione Mostrar en Finder.

  3. Copie el archivo resaltado de Finder en otra ubicación y asígnele un nombre de archivo descriptivo.

    Presentación de Xcode en Finder

Configurar la compilación

Existen dos formas recomendadas para que su compilación acceda a los certificados de firma y a los perfiles de aprovisionamiento para firmar y aprovisionar su aplicación:

  1. Instalarlos durante la compilación.
  2. Preinstalarlos en un agente de compilación de macOS.

Elija cualquiera de las pestañas siguientes para más información.

Use este método cuando no tenga acceso permanente al agente de compilación, como en el caso de los agentes de macOS hospedados. El certificado P12 y el perfil de aprovisionamiento se instalan al principio de la compilación y se quitan cuando finaliza esta.

Instalación del certificado P12 durante la compilación

Editor visual
  1. Agregue la tarea Instalar certificado de Apple a la compilación antes de la tarea Xcode o Xamarin.iOS.
  2. Junto al campo Certificado (P12), seleccione el icono de configuración y cargue el archivo P12 en la biblioteca de archivos seguros. Durante la carga, el certificado se cifrará y almacenará de forma segura.
  3. Una vez cargado el certificado en la biblioteca de archivos seguros, selecciónelo en la lista desplegable Certificado (P12).
  4. Vaya a la pestaña Variables y agregue una variable llamada P12password. Establezca su valor en la contraseña del certificado. Asegúrese de seleccionar el icono de bloqueo. Así la contraseña estará protegida y oculta en los registros.
  5. Vuelva a la pestaña Tareas. En la configuración de la tarea Instalar certificado de Apple, haga referencia a la variable recién creada en el campo Contraseña de certificado (P12) como: $(P12password).
YAML de ejemplo
  1. Cargue el archivo P12 en la biblioteca de archivos seguros. Durante la carga, el certificado se cifrará y almacenará de forma segura.

  2. Vaya a la pestaña Variables y agregue una variable llamada P12password. Establezca su valor en la contraseña del certificado. Asegúrese de seleccionar el icono de bloqueo. Así la contraseña estará protegida y oculta en los registros.

  3. Agregue la tarea Instalar certificado de Apple en el archivo YAML antes de la tarea Xcode o Xamarin.iOS:

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
          certPwd: '$(P12password)'
    

Instalación del perfil de aprovisionamiento durante la compilación

Editor visual
  1. Agregue la tarea Instalar perfil de aprovisionamiento de Apple a la compilación antes de la tarea Xcode o Xamarin.iOS.
  2. En la opción Ubicación del perfil de aprovisionamiento, elija Archivos seguros (en YAML, secureFiles).
  3. Junto al campo Perfil de aprovisionamiento, seleccione el icono de configuración y cargue el archivo de perfil de aprovisionamiento en la biblioteca de archivos seguros. Durante la carga, el certificado se cifrará y almacenará de forma segura.
  4. Una vez cargado el certificado en la biblioteca de archivos seguros, selecciónelo en la lista desplegable Perfil de aprovisionamiento.
  5. Habilite la casilla Quitar perfil después de la compilación. Así se garantiza que el perfil de aprovisionamiento no se deje en la máquina del agente.
YAML de ejemplo
  1. Cargue el perfil de aprovisionamiento en la biblioteca de archivos seguros. Durante la carga, el certificado se cifrará y almacenará de forma segura.

  2. Agregue la tarea Instalar perfil de aprovisionamiento de Apple en el archivo YAML antes de la tarea Xcode o Xamarin.iOS:

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
    

    [NOTA] Quitar perfil después de la compilación adopta como valor predeterminado true.

Referencia a los archivos de la tarea Xcode

Editor visual
  1. Seleccione la tarea Xcode.
  2. Para la opción Estilo de firma, elija Firma manual.
  3. En el campo Identidad de firma, escriba $(APPLE_CERTIFICATE_SIGNING_IDENTITY). La tarea Instalar certificado de Apple establece automáticamente esta variable para el certificado seleccionado.
  4. En el campo UUID de perfil de aprovisionamiento, escriba $(APPLE_PROV_PROFILE_UUID). Esta variable se establece automáticamente mediante la tarea Instalar perfil de aprovisionamiento de Apple para el perfil de aprovisionamiento seleccionado.
YAML de ejemplo
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Referencia a los archivos de la tarea Xamarin.iOS

Editor visual
  1. Seleccione la tarea Xamarin.iOS.
  2. Para la opción Invalidación mediante, elija Identificadores.
  3. En el campo Identidad de firma, escriba $(APPLE_CERTIFICATE_SIGNING_IDENTITY). La tarea Instalar certificado de Apple establece automáticamente esta variable para el certificado seleccionado.
  4. En el campo UUID de perfil de aprovisionamiento, escriba $(APPLE_PROV_PROFILE_UUID). Esta variable se establece automáticamente mediante la tarea Instalar perfil de aprovisionamiento de Apple para el perfil de aprovisionamiento seleccionado.
YAML de ejemplo
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

Guarde la canalización de compilación y listo. El agente de compilación ahora podrá firmar y aprovisionar la aplicación de forma segura.

Preguntas más frecuentes

¿Necesito un agente?

Necesita al menos un agente para ejecutar la compilación o versión.

Tengo problemas. ¿Cómo puedo solucionarlos?

Vea Solución de problemas de compilación y versión.

No se puede seleccionar un grupo de agentes predeterminado y no se puede poner en cola la compilación o versión. ¿Cómo puedo corregirlo?

Vea Grupos de agentes.

La tarea de envío de cambios de NuGet genera el error siguiente: "Error: no se puede obtener el certificado del emisor local". ¿Cómo lo puedo corregir?

Esto se puede corregir si se añade un certificado raíz de confianza. Puede agregar la variable de entorno NODE_EXTRA_CA_CERTS=file al agente de compilación, o bien la variable de tarea NODE.EXTRA.CA.CERTS=file en la canalización. Vea la documentación de Node.js para obtener más detalles sobre esta variable. Consulte Establecimiento de variables en una canalización para obtener instrucciones sobre cómo establecer una variable en la canalización.

Utilizo TFS en el entorno local y no veo algunas de estas características. ¿Por qué no?

Algunas de estas características solo están disponibles en Azure Pipelines y todavía no lo están en el entorno local. Algunas características están disponibles en el entorno local si ha actualizado a la versión más reciente de TFS.