Actualización de aplicaciones

La clase Updater (del paquete flash.desktop) incluye un método, update() , que se puede utilizar para actualizar la aplicación actualmente en ejecución a una versión distinta. Por ejemplo, si el usuario tiene una versión del archivo de AIR ("Sample_App_v2.air") en el escritorio, el siguiente código actualizaría la aplicación:

Ejemplo de ActionScript:

var updater:Updater = new Updater(); 
var airFile:File = File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version:String = "2.01"; 
updater.update(airFile, version);

Ejemplo de JavaScript:

var updater = new air.Updater(); 
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air"); 
var version = "2.01"; 
updater.update(airFile, version);

Antes de que una aplicación utilice la clase Updater, el usuario o la aplicación deben descargar la versión actualizada del archivo de AIR en el equipo. Para obtener más información, consulte Descarga de un archivo de AIR en el equipo del usuario .

Resultados de la llamada al método Updater.update()

Cuando una aplicación del motor de ejecución llama al método update() , este cierra la aplicación y, a continuación, intenta instalar la nueva versión del archivo de AIR. Se comprueba que el ID de aplicación y el ID de editor especificados en el archivo de AIR coinciden con el ID de aplicación y de editor de la aplicación que llama al método update() . (Para obtener más información sobre el ID de aplicación y el ID de editor, consulte Archivos descriptores de las aplicaciones de AIR .) También comprueba si la cadena de versión coincide con la cadena version transferida al método update() . Si la instalación concluye correctamente, el motor de ejecución abre la nueva versión de la aplicación. En caso contrario (si la instalación no concluye correctamente), vuelve a abrir la versión existente de la aplicación (previa a la instalación).

En Mac OS, para instalar una versión actualizada de una aplicación, el usuario debe contar con adecuados privilegios del sistema para instalar en el directorio de la aplicación. En Windows y Linux, el usuario debe disponer de privilegios de administrador.

Si la versión actualizada de la aplicación requiere una versión actualizada del motor de ejecución, se instala la versión más reciente del motor de ejecución. Para actualizar el motor de ejecución, el usuario debe tener privilegios administrativos para el equipo.

Al verificar una aplicación con ADL, llamar al método update() produce una excepción de tiempo de ejecución.

Cadena de versión

Para que el archivo de AIR se pueda instalar, la cadena que se especifica como parámetro version del método update() debe coincidir con el elemento version o versionNumber del archivo descriptor de la aplicación para el archivo de AIR que va a instalarse. Es preciso especificar el parámetro version por motivos de seguridad. Al solicitar a la aplicación que verifique el número de versión en el archivo de AIR, la aplicación no instalará por error una versión anterior. (Una versión anterior de la aplicación puede presentar una vulnerabilidad de seguridad que se haya solucionado en la aplicación instalada actualmente.) La aplicación también comprueba la cadena de versión en el archivo de AIR y la compara con la de la aplicación instalada para evitar desactualizaciones.

Antes de AIR 2.5, la cadena de la versión puede ser de cualquier formato. Por ejemplo, "2.01" o "versión 2". En AIR 2.5, o posterior, la cadena de versión debe ser una secuencia de hasta números de tres dígitos separados por puntos. Por ejemplo, “.0”, “1.0” y “67.89.999” sin números válidos de versión. Se debe validar la cadena de la versión de actualización antes de actualizar la aplicación.

Si una aplicación de Adobe AIR descarga un archivo de AIR por Internet, se recomienda disponer de un mecanismo que permite al servicio web notificar a la aplicación de Adobe AIR sobre la descarga actual de la versión. La aplicación puede utilizar esta cadena como el parámetro version del método update() . Si el archivo de AIR se obtiene por otros medios que impiden conocer la versión del archivo de AIR, la aplicación de AIR puede examinar el archivo de AIR para extraer la información sobre su versión. (Un archivo de AIR es un archivo ZIP comprimido y el archivo descriptor de la aplicación es el segundo registro del archivo.)

Para obtener más información sobre el archivo descriptor de la aplicación, consulte Archivos descriptores de las aplicaciones de AIR .

Flujo de trabajo de firma para actualizaciones de la aplicación

La publicación de actualizaciones de forma ad-hoc complica las tareas de administración de varias versiones de la aplicación y dificulta el seguimiento de las fechas de caducidad del certificado. Los certificados pueden caducar antes de que se pueda publicar una actualización.

El motor de ejecución de Adobe AIR trata una actualización de la aplicación publicada sin una firma de migración como una nueva aplicación. Los usuarios deben desinstalar su aplicación actual de AIR antes de que puedan instalar la actualización de la aplicación.

Para resolver el problema, cargue cada aplicación actualizada con el certificado más reciente en una URL de implementación independiente. Incluya un mecanismo que le recuerde aplicar firmas de migración cuando el certificado esté dentro del periodo de gracia de 180 días. Consulte Firma de una versión actualizada de una aplicación de AIR para obtener más información.

Consulte Comandos de ADT para obtener información sobre cómo aplicar firmas.

Realice las siguientes tareas para simplificar el proceso de aplicación de firmas de migración:

  • Cargue todas las aplicaciones actualizadas en una URL de implementación independiente.

  • Cargue el archivo XML del descriptor de actualización y el certificado más reciente para la actualización en la misma URL.

  • Firme la aplicación actualizada con el certificado más reciente.

  • Aplique una firma de migración a la aplicación actualizada con el certificado para firmar la versión anterior ubicada en una URL diferente.