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.