Forums Développement Multimédia

Aller au contenu

AUto update de Air

CODE Actionscript

8 réponses à ce sujet

#1 loicremy

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 169 messages

Posté 13 March 2012 - 16:37 PM

Bonjour,

Je doit de déployer une application sur plusieurs machine éloignées et en libre service. Je souhaiterai inclure la capacité d'auto update de Air, mais je n'ai pas de possibilité d'avoir un utilisateur qualifié pour ça.

Est-t-il possible que la mise à jour se fasse de manière transparente, sans intervention de l'utilisateur ?

Merci d'avance

Loïc

#2 rigormortis

    Ceinture Orange

  • Members
  • PipPipPip
  • 43 messages

Posté 13 March 2012 - 16:55 PM

Bonjour,

J'ai la même problématique, mais oui c'est possible avec la classe air.update. Par contre pas de mise à jour auto (sans cliquer) pour le runtime

Pour une mise à jour transparente est automatique il faut mettre tout ces paramètres à false


   appUpdater.isCheckForUpdateVisible = false;
   //if you want to see it just leave the default value (or set true).
   appUpdater.isDownloadUpdateVisible = false;
   appUpdater.isCheckForUpdateVisible = false;
   //if isFileUpdateVisible is set to true, File Update, File No Update,
   //and File Error dialog boxes will be displayed
   appUpdater.isFileUpdateVisible = false;
   //if isInstallUpdateVisible is set to true, the dialog box for installing the update is visible
   appUpdater.isInstallUpdateVisible = false;
 
 
Comme cela les mise à jour ce font se téléchargent s'installent et redémarre l'appli sans aucune intervention.
Pour les appli natives il y a une classe NativeApplicationUpdater par contre une fis télécharger ça lance l'éxecutable de la mise à jour qui demande à être installé, il faut donc quelqu'un pour cliquer dessus ce qui est pas top.

Sinon ce pour quoi j'ai opté c'est un "laucher" en installation native avec un script de vérification de mise à jour téléchargement du zip extraction du zip et execution de l'appli air bundle puis fermeture du launcher. Le gros avantage c'est que je peux mettre à jour le runtime en même temps dans mon bundle.

En espérant que cela t'aidera. :smile:

#3 loicremy

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 169 messages

Posté 13 March 2012 - 17:23 PM

Sûr que ça m'aide ...

Si je comprend bien, quand je compile avec l'option 'Application signée avec moteur d’exécution captif' , j'utilise le runtime, qui lui ne sera pas concerné par mes mises à jour ?

Edit: En fait, je viens de comprendre, c'est l'inverse qu'il faut faire : installer le runtime, puis l'appli ensuite, j'ai bon ?
Quelle version entre 'Package AIR signé' et Package AIRI intermédiaire qui dera signé manuellement plus tard' ?
J'imagine que 'Programme s'installation natif signé' inclus l'installation du runtime et de l'appli ?


Si je comprend bien aussi, ton launcher (en Flex ?) va vérifier la présence de mise à jour uniquement pour le runtime, la charge et l'applique s'il en trouve une , mais lui, le launcher n'est jamais mis à jour.

Comment on fait pour vérifier et mettre à jour le runtime si besion , a l'ancienne, ou avec une méthode flex ?


Merci encore

Loïc

#4 rigormortis

    Ceinture Orange

  • Members
  • PipPipPip
  • 43 messages

Posté 13 March 2012 - 17:54 PM

heu oui je suis allé un peu vite, en plus je ne l'ai pas encore codé. Après si il y a plus simple je suis preneur
Donc depuis le début :
On installe Air sur la machine
On installe une appli compilée (launcher) avec un installateur natif (ici .exe) avec l'option sous FD dans Packager.bat
set OUTPUT=-target native %AIR_PATH%\%AIR_NAME%%AIR_TARGET%.exe
Ceci afin d'avoir accès à les droits de lancer d'autre application (l'application finale) et un truc utile qui est NativeApplication.nativeApplication.startAtLogin=true;
Qui lancera notre launcher dès le démarrage d'un session utilisateur sans bidouiller windows


Vu que c'est un installateur natif il ne pourra pas se mettre à jour tout seul, il perd les accès aux classes air.update, mais bon c'est pas grave dans ce cas

Sans mettre tout le code le laucher aura la tache de vérifier sur un site distant si une mise à jour de l'appli finale est dispo et ou est son fichier.
Si oui il télécharge ce fichier distant
Ce fichier distant est dans mon cas un zip qui contient mon appli finale compilée avec
::set OUTPUT=-target bundle %AIR_PATH%\%AIR_NAME%%AIR_TARGET%
Elle inclu donc mon swf un exe pour le lancer et le dossier Adobe Air avec le runtime à jour que je veux
Dans le zip on ne peut mettre à jour que le swf ça fonctionne aussi et ça évite de télécharger tout le bazard.

Par contre le launcher une fois qu'il a tout télécharger doit décompresser l'archive dans un emplacement qui ne doit pas changer.
Pour décompresser je t'orienter vers la librairie as3 Fzip qui est très pratique pas rapide mais pratique.
Une fois que c'est fait il inscrit un nouveau numéro de version dans un fichier texte pour comparer et il lance le .exe de mon appli finale qui lui non plus ne doit pas changer


var playerFile:File = File.desktopDirectory;
   
    var file:File = playerFile.resolvePath("monAppli.exe");
    var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
    nativeProcessStartupInfo.executable = file;
    process = new NativeProcess();
    process.start(nativeProcessStartupInfo);
   
 
et le launcher se ferme

NativeApplication.nativeApplication.exit();
 

Normalement ça marche.

Sinon c'est quoi ton projet ?
Perso c'est pour de l'affichage dynamique

#5 loicremy

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 169 messages

Posté 14 March 2012 - 11:37 AM

Bonjour,

Et merci de toutes ces infos.

Je vais au départ passer par une install du runtime et 'simplement' la mise à jour auto de l'applicatif. S'il fallait updater le runtime, je passerai dans un premier temps par le bureau à distance de Windows (les machines sont en réseau). En fait , l'auto-update m’intéresse pour ne pas avoir à faire 'virtuellement' le tours des ordis et mettre à jour à la main...

Mon appli est une borne interactive qui puise ses infos sur un serveur php.


J'ai aussi besoin d'une info sur les événements souris, je vais créer un autre poste.


Voilou et merci encore.

Loïc

#6 loicremy

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 169 messages

Posté 15 March 2012 - 09:28 AM

Suite (et fin ?) de l'histoire :

J'ai testé la mise à jour auto et je pense que je ne pourrai pas en profiter :

Sous Windows 7 (OS de mes ordis/bornes) la mise en place des instructions que tu m'a fourni permet de se passer de l'intervention de l'utilisateur, mais les dialogues apparaissent quand même et l'utilisateur a la possibilité de cliquer sur 'Cancel'...

Pire, avant d'installer, comme tu le disais, le contrôle utilisateur demande confirmation et je ne sais pas comment éviter ça...


Tant pis

Loïc

#7 rigormortis

    Ceinture Orange

  • Members
  • PipPipPip
  • 43 messages

Posté 15 March 2012 - 09:57 AM

Pour avoir mes box aussi sous seven je n'ai pas eu ces notifications. :?

Par contre j'ai oublié de t'indiquer celui la


appUpdater.isDownloadProgressVisible=false;
 

Pour la mise à jour et l'installation ce n'est valable que pour une appli air classique, un update sur un air compilé en .exe demandera toujours effectivement une confirmation lors de l'install.

Je te renvoi sinon sur ce lien qui m'avait donné les premières pistes.

#8 dess.216

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 124 messages

Posté 03 July 2013 - 16:03 PM

ouah ! trop bien tout ça !
je viens de tomber la dessus ça pourrait peut être solutionner les soucis :)
http://www.riaspace....ive-installers/

#9 dess.216

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 124 messages

Posté 21 May 2014 - 12:54 PM

bonjour tout le monde,

je me permets un petit up concernant la mise à jour automatique d'une application native air.
c'est à dire sans intervention utilisateur, actuellement je dois cliquer sur "remplacer" afin de poursuivre la maj.
est ce qu'il y aurait des évolutions suite aux nouvelles versions de air ?
j'utilise actuellement la classe https://code.google....icationupdater/
est ce que c'est la bonne méthode ? je précise que mon application est une application native qui a besoin d'accéder aux ressources windows


tchuss :)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP