Pakowanie pliku instalacyjnego AIR na komputery stacjonarne

Każda aplikacja AIR musi zawierać przynamniej plik deskryptora aplikacji oraz główny plik SWF lub HTML. Wszelkie inne zasoby przeznaczone do zainstalowania z aplikacją również muszą zostać umieszczone w pakiecie pliku AIR.

W tym artykule omówiono pakowanie aplikacji AIR za pomocą narzędzi wiersza poleceń znajdujących się w zestawie SDK. Informacje na temat pakowania aplikacji za pomocą jednego z narzędzi firmy Adobe do opracowywania zawartości można znaleźć w następujących materiałach:

Wszystkie pliki instalatora AIR muszą być podpisane certyfikatem elektronicznym. Instalator AIR korzysta z podpisu w celu sprawdzenia, czy po podpisaniu plik aplikacji nie został zmodyfikowany. Użytkownik może użyć certyfikatu podpisującego kod wydanego przez ośrodek certyfikacji lub certyfikatu samopodpisanego.

Jeśli używany jest certyfikat wydany przez zaufany ośrodek certyfikacji, ten certyfikat stanowi dla użytkowników aplikacji poświadczenie tożsamości wydawcy. Okno dialogowe instalacji odzwierciedla fakt, że tożsamość wydawcy została zatwierdzona przez ośrodek certyfikacji:

Okno dialogowe instalacji dla aplikacji podpisanych za pomocą zaufanego certyfikatu

Gdy stosowany jest certyfikat samopodpisany, użytkownicy nie mogą sprawdzić tożsamości wydawcy, jako strony podpisującej. Certyfikat samopodpisany dodatkowo zmniejsza pewność, że pakiet nie został zmodyfikowany. (Jest tak dlatego, że prawowity plik instalacyjny mógł zostać zamieniony na falsyfikat zanim dotarł do użytkownika). Okno dialogowe zawiera informację o tym, że nie można sprawdzić tożsamości wydawcy. Użytkownicy instalujący taką aplikację podejmują większe ryzyko:

Okno dialogowe instalacji dla aplikacji podpisanych za pomocą certyfikatu sampodpisanego

Plik AIR można spakować i podpisać w jednym kroku, korzystając z polecenia -package narzędzia ADT. Można również utworzyć pośredni, niepodpisany pakiet za pomocą polecenia -prepare , a następnie podpisać go za pomocą polecenia -sign w osobnym kroku.

Uwaga: Środowisko Java w wersji 1.5 i wyższych nie akceptuje znaków o wysokich kodach ASCII w hasłach chroniących pliki certyfikatów PKCS12. Podczas tworzenia lub eksportowania pliku certyfikatu podpisującego kod należy używać w haśle zwykłych znaków ASCII.

Podczas podpisywania pakietu instalacyjnego narzędzie ADT automatycznie łączy się z serwerem znaczników czasu w celu weryfikacji czasu. Informacje znacznika czasu są dołączone do pliku AIR. Plik AIR, który zawiera zweryfikowany znacznik czasu, może zostać zainstalowany w dowolnym momencie w przyszłości. Jeśli narzędzie ADT nie może nawiązać połączenia z serwerem znaczników czasu, wówczas pakowanie zostaje anulowane. Opcję ustawiania znaczników czasu można anulować, ale bez znacznika czasu zainstalowanie aplikacji AIR będzie niemożliwe po utracie ważności certyfikatu służącego do podpisania pliku instalacyjnego.

W przypadku tworzenia pakietu przeznaczonego do aktualizacji istniejącej aplikacji AIR pakiet musi zostać podpisany tym samym certyfikatem, co oryginalna aplikacja. Jeśli oryginalny certyfikat został odnowiony lub utracił ważność w ciągu ostatnich 180 dni, lub jeśli wydawca chce zmienić certyfikat na nowy, wówczas można zastosować podpis migracji. Podpis migracji obejmuje podpisanie pliku aplikacji AIR za pomocą nowego i starego certyfikatu. Za pomocą polecenia -migrate można zastosować podpis migracji, zgodnie z opisem w sekcji Polecenie migrate narzędzia ADT .

Ważne: Po utracie ważności oryginalnego certyfikatu istnieje okres karencji wynoszący równo 180 dni, w trakcie którego można zastosować podpis migracji. W przypadku braku podpisu migracji istniejący użytkownicy będą musieli odinstalować istniejącą aplikację przed zainstalowaniem nowej wersji. Okres karencji dotyczy tylko aplikacji utworzonych w środowisku AIR w wersji 1.5.3 i wyższych wersjach, w przestrzeni nazw deskryptora aplikacji. W przypadku wcześniejszych wersji środowiska aplikacji AIR nie obowiązuje okres karencji.

W wersjach przed AIR 1.1 podpisy migracji nie były obsługiwane. W celu zastosowania podpisu migracji należy spakować aplikację za pomocą narzędzia SDK w wersji 1.1 lub późniejszej.

Aplikacje wdrożone z wykorzystaniem plików AIR są znane jako aplikacje o profilu Stacjonarny. Narzędzia ADT nie można użyć do spakowania rodzimego instalatora dla aplikacji AIR, jeśli plik deskryptora aplikacji nie obsługuje profilu Stacjonarny. Profil można ograniczyć za pomocą elementu supportedProfiles w pliku deskryptora aplikacji. Więcej informacji zawierają sekcje Profile urządzeń i supportedProfiles .

Uwaga: Ustawienia pliku deskryptora aplikacji określają tożsamość aplikacji AIR oraz jej domyślną ścieżkę instalacyjną. Zobacz Pliki deskryptora aplikacji AIR .

Identyfikatory wydawcy

Począwszy od wersji AIR 1.5.3 identyfikatory wydawcy stały się nieaktualne. Nowe aplikacje (początkowo publikowane za pomocą AIR 1.5.3 lub w wersjach późniejszych) nie potrzebują i nie powinny określać identyfikatora wydawcy.

W przypadku aktualizowania aplikacji opublikowanych we wcześniejszych wersjach AIR należy określić identyfikator oryginalnego wydawcy w pliku deskryptora aplikacji. W przeciwnym wypadku zainstalowana wersja aplikacji oraz wersja z aktualizacją będą traktowane jako różne aplikacje. Jeśli zostanie zastosowany inny identyfikator lub pominięty zostanie znacznik publisherID, wówczas przed zainstalowaniem nowej wersji użytkownik będzie musiał odinstalować wcześniejszą wersję.

Aby ustalić oryginalny identyfikator wydawcy, należy odszukać plik publisherid w podkatalogu META-INF/AIR, w którym zainstalowana jest oryginalna aplikacja. Ciąg znaków w tym pliku jest identyfikatorem wydawcy. Deskryptor aplikacji powinien określać środowisko wykonawcze AIR 1.5.3 (lub późniejszą wersję) w deklaracji przestrzeni nazw pliku deskryptora aplikacji — tylko wówczas możliwe jest ręczne określenie identyfikatora wydawcy.

W przypadku aplikacji opublikowanych przed wersją AIR 1.5.3 — oraz opublikowanych za pomocą AIR 1.5.3 SDK, jeśli w przestrzeni nazw deskryptora aplikacji określono wcześniejszą wersję AIR — identyfikator wydawcy jest określany na podstawie certyfikatu podpisującego. Ten identyfikator jest używany wraz z identyfikatorem aplikacji w celu określenia tożsamości aplikacji. Identyfikator wydawcy — jeśli jest dostępny — jest używany do następujących celów:

  • Sprawdzanie, czy plik AIR jest aktualizacją, a nie nową aplikacją do zainstalowania

  • Jako część klucza szyfrowania dla zaszyfrowanej składnicy lokalnej

  • Jako część ścieżki katalogu zapisu aplikacji

  • Jako część ciągu znaków połączenia dla połączeń lokalnych

  • Jako część ciągu znaków tożsamości używanego w celu wywołania aplikacji z interfejsem API AIR dostępnym w przeglądarce

  • Jako część OSID (używany podczas tworzenia niestandardowych programów instalacyjnych/deinstalacyjnych)

Przed wersją AIR 1.5.3 identyfikator wydawcy aplikacji mógł zostać zmieniony, jeśli aktualizację aplikacji podpisano za pomocą podpisu migracji przy użyciu nowego lub odnowionego certyfikatu. Gdy dochodzi do zmiany identyfikatora wydawcy, następuje również zmiana działania wszystkich funkcji AIR zależnych od tego identyfikatora. Na przykład: dochodzi do utraty dostępu do danych w istniejącej składnicy lokalnej, a wszelkie instancje Flash lub AIR, które tworzą lokalne połączenie z aplikacją, muszą stosować nowy identyfikator w ciągu znaków połączenia.

W wersji AIR 1.5.3 i wersjach późniejszych identyfikator wydawcy nie jest oparty na certyfikacie podpisującym i jest przypisywany tylko wówczas, gdy deskryptor aplikacji zawiera znacznik publisherID. Aplikacja nie może zostać zaktualizowana, jeśli identyfikator wydawcy dla zaktualizowanego pakietu AIR nie jest zgodny z aktualnym identyfikatorem wydawcy.

Pakowanie przy użyciu narzędzia ADT

Aplikacje AIR można pakować za pomocą narzędzia wiersza poleceń ADT środowiska AIR. Przed przystąpieniem do pakowania należy skompilować kod ActionScript, MXML oraz kod wszystkich rozszerzeń. Jest również potrzebny certyfikat podpisywania kodu.

Szczegółową dokumentację poleceń i opcji narzędzia ADT zawiera sekcja Narzędzie ADT .

Tworzenie pakietu AIR

Aby utworzyć pakiet AIR, należy użyć polecenia package narzędzia ADT, ustawiając dla typu docelowego wersji do rozpowszechniania wartość air .

adt -package -target air -storetype pkcs12 -keystore ../codesign.p12 myApp.air myApp-app.xml myApp.swf icons

W tym przykładzie przyjęto, że ścieżka do narzędzia ADT znajduje się w definicji ścieżki powłoki wiersza poleceń. (W celu uzyskania pomocy zapoznaj się z tematem Zmienne środowiskowe ścieżek ).

Polecenie należy uruchomić w katalogu zawierającym pliki aplikacji. Pliki aplikacji użyte w tym przykładzie to myApp-app.xml (plik deskryptora aplikacji), myApp.swf i katalog ikon.

Po uruchomieniu polecenia w przedstawiony sposób narzędzie ADT wyświetli monit o podanie hasła magazynu kluczy. (Wpisywane znaki hasła czasami nie są wyświetlane. Po zakończeniu wpisywania wystarczy nacisnąć klawisz Enter).

Tworzenie pakietu AIR z pliku AIRI

W celu uzyskania pakietu AIR z możliwością instalowania można utworzyć i podpisać plik AIRI.

adt -sign -storetype pkcs12 -keystore ../codesign.p12 myApp.airi myApp.air