A propos de la mise à jour des applications

La classe Updater (intégrée au package flash.desktop) contient une méthode unique, update() , qui permet de mettre à jour l’application en cours d’exécution. Par exemple, si l’utilisateur dispose d’une version du fichier AIR (« Sample_App_v2.air ») située sur le bureau, le code suivant met à jour l’application :

Exemple 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);

Exemple JavaScript :

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

Pour que l’application puisse utiliser la classe Updater, l’utilisateur ou l’application doit télécharger la version mise à jour du fichier AIR sur l’ordinateur. Pour plus d’informations, voir Téléchargement d’un fichier AIR sur l’ordinateur de l’utilisateur .

Résultats de l’appel à la méthode Updater.update()

Lorsqu’une application du moteur d’exécution appelle la méthode update() , le moteur d’exécution ferme l’application, puis tente d’installer la nouvelle version à partir du fichier AIR. Le moteur d’exécution vérifie que l’ID d’application et l’ID d’éditeur spécifiés dans le fichier AIR correspondent à ceux de l’application qui appellent la méthode update() . (Pour plus d’informations sur l’ID d’application et l’ID d’éditeur, voir Fichiers descripteurs d’applications AIR .) Il vérifie également que la chaîne de version correspond à la chaîne version transmise à la méthode update() . Si l’installation réussit, le moteur d’exécution ouvre la nouvelle version de l’application. Dans le cas contraire (si l’installation échoue), il ouvre à nouveau la version existante (pré-installée) de l’application.

Sous Mac OS, pour installer une version mise à jour d’une application, l’utilisateur doit disposer de privilèges système appropriés pour accéder au répertoire de l’application. S’il utilise Windows ou Linux, l’utilisateur doit disposer de privilèges d’administrateur.

Si la version mise à jour de l’application requiert une mise à jour du moteur d’exécution, la nouvelle version du moteur est installée. Pour mettre à jour le moteur d’exécution, un utilisateur doit disposer des privilèges administrateur pour l’ordinateur.

Lors du test d’une application avec l’application de débogage du lanceur AIR (ADL), l’appel de la méthode update() provoque une exception d’exécution.

A propos de la chaîne de version

La chaîne spécifiée comme paramètre version de la méthode update() doit correspondre à la chaîne de l’élément version ou versionNumber du fichier descripteur d’application associé au fichier AIR à installer. Par mesure de sécurité, la définition du paramètre version est obligatoire. En imposant à l’application de vérifier le numéro de version du fichier AIR, celle-ci évite d’installer une version antérieure par inadvertance. (Une version antérieure de l’application risque d’être affectée par des problèmes de sécurité résolus dans l’application actuellement installée.) L’application doit également vérifier la chaîne de version du fichier AIR avec la chaîne de version de l’application installée afin d’éviter les tentatives d’attaque pour rétrograder l’application.

Avant AIR 2.5, utilisez n’importe quel format pour la chaîne de version (« 2.01 » ou « version 2 », par exemple). A partir d’AIR 2.5 ou ultérieur, la chaîne de version doit correspondre à une séquence de nombres d’un, deux ou trois chiffres, séparés par un point. Exemple : « .0 », « 1.0 » et « 67.89.999 » sont tous des nombres de version valides. Validez la chaîne de version avant de mettre à jour l’application.

Si une application Adobe AIR télécharge un fichier AIR via Internet, il est conseillé de disposer d’un mécanisme permettant au service Web d’informer l’application Adobe AIR de la version en cours de téléchargement. L’application peut ainsi utiliser cette chaîne comme paramètre version de la méthode update() . Si le fichier AIR est obtenu par un autre moyen, dans lequel la version du fichier AIR est inconnue, l’application AIR peut examiner le fichier AIR afin de déterminer les informations de version. (Un fichier AIR est une archive compressée et le fichier descripteur d’application correspond au deuxième enregistrement dans l’archive.)

Pour plus d’informations sur le fichier descripteur d’application, voir Fichiers descripteurs d’applications AIR .

Flux de travail de signature associé aux mises à jour d’application

La publication ad hoc de mises à jour complique les tâches de gestion de versions d’application multiples, ainsi que le processus de suivi des dates d’expiration des certificats. Un certificat risque d’arriver à expiration avant que vous ne puissiez publier une mise à jour.

Le moteur d’exécution d’Adobe AIR traite une mise à jour d’application publiée sans signature de migration comme une nouvelle application. Les utilisateurs doivent désinstaller l’application AIR en cours pour pouvoir installer la mise à jour.

Pour résoudre le problème, téléchargez chaque application mise à jour avec le certificat le plus récent sur une URL de déploiement distincte. Incluez un mécanisme destiné à vous rappeler d’appliquer une signature de migration lorsque le délai de 180 jours du certificat est entamé, mais pas dépassé. Pour plus d’informations, voir Signature d’une version mise à jour d’une application AIR .

Pour apprendre à appliquer une signature, voir Commandes de l’outil ADT .

Exécutez les tâches suivantes pour rationaliser le processus d’application des signatures de migration :

  • Téléchargez chaque application mise à jour sur une URL de déploiement distincte.

  • Téléchargez le fichier XML du descripteur de mise à jour et le certificat associé à la mise à jour le plus récent sur la même URL.

  • Signez l’application mise à jour à l’aide du certificat le plus récent.

  • Appliquez une signature de migration à l’application mise à jour à l’aide du certificat utilisé pour signer la version précédente (qui réside sur une autre URL).