Informacje o aktualizowaniu aplikacji

Klasa Updater (w pakiecie flash.desktop) zawiera jedną metodę, update() , której można użyć w celu zaktualizowania obecnie uruchomionej aplikacji do innej wersji. Na przykład, jeśli użytkownik ma wersję pliku AIR ("Sample_App_v2.air") umieszczoną na pulpicie, poniższy kod zaktualizuje aplikację.

Przykład w języku 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);

Przykład w języku JavaScript:

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

Przed użyciem klasy Updater użytkownik lub aplikacja musi pobrać zaktualizowaną wersję pliku AIR do komputera. Więcej informacji zawiera rozdział Pobieranie pliku AIR na komputer użytkownika .

Wyniki wywołania metody Updater.update()

Gdy aplikacja w środowisku wykonawczym wywoła metodę update() , środowisko wykonawcze zamyka aplikację, a następnie próbuje zainstalować nową wersję z pliku AIR. Środowisko wykonawcze sprawdza, czy identyfikatory aplikacji i wydawcy określone w pliku AIR zgadzają się z identyfikatorami aplikacji i wydawcy aplikacji wywołującej metodę update() . (Informacje na temat identyfikatorów aplikacji i wydawcy zawiera rozdział Pliki deskryptora aplikacji AIR ). Środowisko sprawdza także, czy ciąg znaków wersji jest identyczny z ciągiem znaków version przekazanym do metody update() . Jeśli instalacja zakończy się pomyślnie, środowisko wykonawcze otwiera nową wersję aplikacji. W przeciwnym wypadku (jeśli nie było możliwe zakończenie instalacji), ponownie otwierana jest dotychczasowa (sprzed instalacji) wersja aplikacji.

W celu zainstalowania zaktualizowanej wersji aplikacji w systemie Mac OS użytkownik musi mieć odpowiednie uprawnienia dostępu do zainstalowania w katalogu aplikacji. W systemach Windows i Linux użytkownik musi mieć uprawnienia administracyjne.

Jeśli zaktualizowana wersja aplikacji wymaga zaktualizowanej wersji środowiska wykonawczego, instalowana jest nowa wersja tego środowiska. W celu zaktualizowania środowiska wykonawczego użytkownik musi posiadać uprawnienia administracyjne do komputera.

Podczas testowania aplikacji przy użyciu środowiska ADL wywołanie metody update() powoduje wygenerowanie wyjątku w czasie wykonywania.

Informacje o ciągu znaków wersji

Ciąg znaków określony jako parametr version metody update() musi być zgodny z ciągiem znaków w elemencie version lub versionNumber w pliku deskryptora aplikacji dla pliku AIR przeznaczonego do zainstalowania. Określenie parametru version jest wymagane ze względów bezpieczeństwa. Sprawdzanie przez aplikację numeru wersji w pliku AIR zapobiega niezamierzonemu zainstalowaniu starszej wersji. (Starsza wersja aplikacji może zawierać lukę w zabezpieczeniach, która została wyeliminowana w obecnie zainstalowanej wersji.) Aplikacja powinna także porównać ciąg znaków wersji w pliku AIR z ciągiem znaków wersji w instalowanej aplikacji, aby uniemożliwić ataki polegające na podstawieniu starszej wersji.

W wersjach środowiska AIR starszych niż 2.5 ciąg znaków wersji może mieć dowolny format. Na przykład może mieć wartość „2.01” lub „version 2”. W środowisku AIR 2.5 lub nowszym ciąg znaków wersji musi być sekwencją maksymalnie trzech trzycyfrowych liczb rozdzielonych kropkami. Prawidłowy numer wersji może mieć na przykład postać „.0”, „1.0” lub „67.89.999”. Przed zaktualizowaniem aplikacji należy sprawdzić poprawność ciągu znaków wersji aktualizacji.

Jeśli aplikacja Adobe AIR pobierze plik AIR z sieci Web, wskazane jest zapewnienie mechanizmu powiadamiania przez usługę Web Service aplikacji Adobe AIR o pobieranej wersji. Aplikacja może następnie wykorzystać odpowiedni ciąg znaków jako parametr version metody update() . Jeśli plik AIR został uzyskany w inny sposób, a jego wersja jest nieznana, aplikacja AIR może przeanalizować plik AIR w celu określenia informacji o wersji. (Plik AIR ma postać archiwum w skompresowanego w formacie ZIP, a plik deskryptora jest drugim rekordem w archiwum).

Szczegółowe informacje na temat pliku deskryptora aplikacji zawiera rozdział Pliki deskryptora aplikacji AIR .

Obieg pracy podpisywania aktualizacji aplikacji

Publikowanie aktualizacji metodą „ad hoc” komplikuje zarządzanie wieloma wersjami aplikacji, a także utrudnia śledzenie dat utraty ważności certyfikatów. Certyfikaty mogą utracić ważność, zanim będzie możliwe opublikowanie aktualizacji.

Środowisko wykonawcze Adobe AIR traktuje aktualizację aplikacji opublikowaną bez podpisu migracji jako nową aplikację. Użytkownicy muszą odinstalować bieżącą aplikację AIR, aby móc zainstalować aktualizację aplikacji.

W celu rozwiązania tego problemu należy wysłać każdą zaktualizowaną aplikację z najnowszym certyfikatem na osobny adres URL wdrażania. Należy uwzględnić mechanizm przypominania o stosowaniu podpisów migracji, gdy rozpocznie się 180-dniowy okres prolongaty certyfikatu. Więcej informacji zawiera rozdział Podpisywanie zaktualizowanej wersji aplikacji AIR .

Informacje na temat stosowania podpisów zawiera sekcja Polecenia narzędzia ADT .

Aby usprawnić stosowanie podpisów migracji, należy wykonać następujące zadania:

  • Wyślij każdą zaktualizowaną aplikację na osobny adres URL wdrażania.

  • Wyślij plik XML deskryptora uaktualnienia i najnowszy certyfikat dla aktualizacji na ten sam adres URL.

  • Podpisz zaktualizowaną aplikację za pomocą najnowszego certyfikatu.

  • Zastosuj podpis migracji do zaktualizowanej aplikacji za pomocą certyfikatu użytego do podpisania poprzedniej wersji, umieszczonej pod innym adresem URL.