Firma de una versión actualizada de una aplicación de AIR

Cada vez que cree una versión actualizada de una aplicación de AIR existente, debe firmar la aplicación actualizada. Lo más conveniente es usar el certificado que se utilizó para firmar la versión anterior. En ese caso, la firma es como al firmar la aplicación por primera vez.

Si el certificado utilizado para firmar la anterior versión de la aplicación se hubiera renovado o sustituido después de caducar, puede usar el certificado renovado o nuevo (sustitutorio) para firmar la versión actualizada. Para ello, debe firmar la aplicación con el certificado nuevo y aplicar una firma de migración usando el certificado original. La firma de migración valida que el propietario del certificado original haya publicado la actualización.

Antes de aplicar una firma de migración, se deben tener en cuenta los siguientes puntos:

  • Para poder aplicar una firma de migración, el certificado original debe ser aún válido o haber caducado en los últimos 365 días. El periodo se denomina "periodo de gracia" y la duración puede cambiar en el futuro.

    Nota: hasta AIR 2.6, el periodo de gracia era de 180 días.
  • No es posible aplicar una firma de migración una vez que caduque el certificado y transcurra el periodo de gracia de 365 días. De ser así, los usuarios tendrán que desinstalar la versión existente antes de instalar la actualizada.

  • El periodo de gracia de 365 días solo se aplica a las aplicaciones que especifican la versión de AIR 1.5.3 o posterior en el espacio de nombres del descriptor de la aplicación.

Importante: la firma de actualizaciones con firmas de migración a partir de certificados caducados es una solución temporal. Para obtener una solución amplia, cree un flujo de trabajo de firma estandarizado para administrar la implementación de actualizaciones de la aplicación. Por ejemplo, firme cada actualización con el certificado más reciente y aplique un certificado de migración usando el mismo certificado que para firmar la actualización anterior (de ser aplicable). Cargue cada actualización en su propia URL, desde la que los usuarios podrán descargar la aplicación. Para obtener más información, consulte Flujo de trabajo de firma para actualizaciones de la aplicación.

En la tabla y la figura siguientes se resume el flujo de trabajo para el uso de firmas de migración:

Escenario

Estado del certificado original

Acción del desarrollador

Acción del usuario

Aplicación basada en la versión del motor de ejecución de Adobe AIR 1.5.3 o superior

Válido

Publicación de la versión más reciente de la aplicación de AIR

No se requiere ninguna acción

La aplicación se actualiza automáticamente

Caducado pero dentro del periodo de gracia de 365 días

Firme la aplicación con el certificado nuevo. Aplique una firma de migración con el certificado caducado.

No se requiere ninguna acción

La aplicación se actualiza automáticamente

Caducado y no en periodo de gracia

No se puede aplicar la firma de migración a la actualización de la aplicación de AIR.

En lugar de ello, debe publicar otra versión de la aplicación de AIR utilizando un nuevo certificado. Los usuarios pueden instalar la nueva versión tras desinstalar su versión existente de la aplicación de AIR.

Desinstale la versión actual de la aplicación de AIR e instale la versión más reciente.

  • Aplicación basada en la versión del motor de ejecución de Adobe AIR 1.5.2 o anterior

  • El ID de editor en el descriptor de la aplicación de la actualización coincide con el ID de editor de la versión anterior

Válido

Publicación de la versión más reciente de la aplicación de AIR

No se requiere ninguna acción

La aplicación se actualiza automáticamente

Caducado y no en periodo de gracia

No se puede aplicar la firma de migración a la actualización de la aplicación de AIR.

En lugar de ello, debe publicar otra versión de la aplicación de AIR utilizando un nuevo certificado. Los usuarios pueden instalar la nueva versión tras desinstalar su versión existente de la aplicación de AIR.

Desinstale la versión actual de la aplicación de AIR e instale la versión más reciente.

  • Aplicación basada en la versión del motor de ejecución de Adobe AIR 1.5.2 o anterior

  • El ID de editor en el descriptor de la aplicación de la actualización no coincide con el ID de editor de la versión anterior

Cualquiera

Firme la aplicación de AIR usando un certificado válido y publique la versión más reciente de la aplicación de AIR

Desinstale la versión actual de la aplicación de AIR e instale la versión más reciente.

Flujo de trabajo de firma para actualizaciones

Migración de una aplicación de AIR para utilizar un nuevo certificado

Para migrar una aplicación de AIR a un certificado nuevo mientras se actualiza la aplicación:

  1. Cree una actualización de la aplicación.

  2. Empaquete y firme el archivo de AIR de actualización con el certificado nuevo.

  3. Vuelva a firmar el archivo de AIR con el certificado original utilizando el comando -migrate.

También se puede usar un archivo AIR firmado con el comando -migrate para instalar una nueva versión de la aplicación, además de para actualizar cualquier versión anterior firmada con el certificado antiguo.

Nota: al actualizar una aplicación publicada para una versión de AIR anterior a 1.5.3, es necesario especificar el ID de editor original en el descriptor de la aplicación. De lo contrario, los usuarios de la aplicación deben desinstalar la versión anterior antes de la instalar la actualización.

Utilice el comando -migrate de ADT con la sintaxis siguiente:

adt -migrate SIGNING_OPTIONS air_file_in air_file_out
  • SIGNING_OPTIONS Las opciones de firma identifican la clave privada y el certificado con que se firma el archivo de AIR. Estas opciones deben identificar el certificado de firma original y se describen en Opciones de firma de código de ADT

  • air_file_in El archivo de AIR para la actualización, firmado con el certificado nuevo.

  • air_file_out El archivo de AIR que se va a crear.

Nota: los nombres de archivo utilizados para los archivos de AIR de entrada y salida deben ser diferentes.

El ejemplo siguiente demuestra una llamada a ADT con el indicador -migrate para aplicar una firma de migración a una versión actualizada de una aplicación de AIR:

adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air
Nota: el comando -migrate se añadió a ADT en la versión 1.1 de AIR.

Migración de una aplicación de AIR como instalador nativo para usar un certificado nuevo

Una aplicación de AIR publicada como instalador nativo (por ejemplo, una aplicación con la extensión nativa api) no se puede firmar utilizando el comando -migrate de ADT por ser una aplicación nativa específica de plataforma, no un archivo .air. El procedimiento para migrar a un certificado nuevo una aplicación de AIR publicada como extensión nativa es el siguiente:

  1. Cree una actualización de la aplicación.

  2. Asegúrese de que en el archivo del descriptor de la aplicación (app.xml) la etiqueta <supportedProfiles> incluya tanto el perfil de escritorio como el perfil extendedDesktop (o elimine la etiqueta <supportedProfiles> del descriptor de la aplicación).

  3. Empaquete y firme la aplicación de actualización como archivo .air usando el comando -package de ADT con el certificado nuevo.

  4. Aplique el certificado de migración al archivo .air usando el comando -migrate de ADT con el certificado original (como se ha descrito en Migración de una aplicación de AIR para utilizar un nuevo certificado).

  5. Empaquete el archivo .air en un instalador nativo usando el comando -package de ADT con el indicador -target native. No hace falta especificar un certificado de firma en este paso porque la aplicación ya está firmada.

El ejemplo siguiente ilustra los pasos 3-5 de este proceso. El código llama a ADT con el comando -package, llama a ADT con el comando -migrate y vuelve a llamar a ADT con el comando -package para empaquetar una versión actualizada de una aplicación de AIR como instalador nativo:

adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf 
adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air 
adt -package -target native myApp.exe myAppMigrate.air

Migración de una aplicación de AIR que usa una extensión nativa para usar un nuevo certificado

Una aplicación de AIR que usa una extensión nativa no se puede firmar usando un comando -migrate de ADT. Tampoco se puede migrar mediante el procedimiento usado para una aplicación de AIR de instalador nativo, ya que no se puede publicar como archivo .air intermedio. El procedimiento para migrar a un certificado nuevo una aplicación de AIR que usa una extensión nativa es el siguiente:

  1. Cree una actualización de la aplicación.

  2. Empaquete y firme el instalador nativo de la actualización usando el comando -package de ADT. Empaquete la aplicación con el certificado nuevo e incluya el indicador -migrate especificando el certificado original.

Use la siguiente sintaxis para llamar al comando -package de ADT con el indicador -migrate:

adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS
  • AIR_SIGNING_OPTIONS Las opciones de firma identifican la clave privada y el certificado con que se firma el archivo de AIR. Estas opciones identifican el certificado de firma nuevo y se describen en Opciones de firma de código de ADT.

  • MIGRATION_SIGNING_OPTIONS Las opciones de firma identifican la clave privada y el certificado con que se firma el archivo de AIR. Estas opciones identifican el certificado de firma original y se describen en Opciones de firma de código de ADT.

  • Las otras opciones son las mismas que las usadas para empaquetar una aplicación de AIR como instalador nativo y se describen en Comando package de ADT.

El ejemplo siguiente demuestra una llamada a ADT con el comando -package y el indicador -migrate para empaquetar una versión actualizada de una aplicación de AIR que usa una extensión nativa y aplicar una firma de migración a la actualización:

adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf
Nota: El indicador -migrate del comando -package está disponible en ADT a partir de AIR 3.6.