Упаковка файла установки AIR для настольных систем

Каждое приложение AIR должно как минимум иметь файл дескриптора и основной SWF- или HTML-файл. Прочие активы, устанавливаемые вместе с приложением, необходимо также упаковать в AIR-файл.

В данной статье описана процедура упаковки приложения AIR с помощью инструментов командной строки, включенных в SDK. Дополнительные сведения об упаковке приложения с использованием одного из инструментов Adobe можно найти в следующих статьях:

Все установочные файлы AIR необходимо подписывать цифровым сертификатом. Программа установки AIR использует подпись для гарантии того, что файл приложения не изменялся с момента подписания. Можно использовать сертификат для подписания кода, выданный уполномоченным центром сертификации, или применять самозаверяющий сертификат.

Сертификат, выданный сертифицирующим органом, вызовет у пользователей большее доверие к вам как к издателю. Во время установки отобразится диалоговое окно со сведениями о том, что удостоверение издателя проверено сертифицирующим органом.

Диалоговое окно подтверждения для приложения, подписанного доверенным сертификатом

При использовании самоподписанного сертификата пользователи не смогут проверить ваше удостоверение издателя. Кроме этого, пользователь не сможет быть уверен в том, что содержимое пакета не было изменено. (Исходный установочный файл может быть подменен до того, как конечный пользователь откроет его.) Во время установки отобразится диалоговое окно со сведениями о том, что удостоверение издателя не может быть проверено. Устанавливая такие приложения пользователи подвергают систему безопасности большему риску:

Диалоговое окно подтверждения для приложения с самоподписанным сертификатом

Файл AIR можно упаковать и подписать в один этап с помощью команды -package средства ADT. Также можно создать промежуточный, неподписанный пакет с помощью команды -prepare и отдельно подписать промежуточный пакет с помощью команды -sign.

Примечание. Java 1.5 и более поздние версии не позволяют использовать в паролях для защиты файлов сертификатов PKCS12 нестандартные символы ASCII. При создании или экспорте файла сертификата кода используйте в пароле только стандартные символы ASCII.

При подписании установочного пакета ADT автоматически связывается с сервером органа, поставившего временную отметку, для ее проверки. Информация о временной отметке включена в файл AIR. Файл AIR, содержащий проверенную временную отметку, в будущем может быть установлен в любой момент. Если средство ADT не может связаться с сервером временных отметок, упаковка не производится. Эту функцию можно отменить, но без временной отметки приложение AIR нельзя будет установить после того, как истечет срок действия сертификата подписи.

При создании пакета для обновления существующего приложения AIR он должен быть подписан тем же сертификатом, что и исходное приложение. Если исходный сертификат за последние 180 дней обновлялся или истекал, или при необходимости замены сертификата на новый можно использовать подпись переноса. При использовании подписи переноса AIR-файл приложения подписывается как старым, так и новым сертификатом. Используйте команду -migrate, чтобы применить подпись переноса, как описано в разделе Команда ADT migrate.

Важная информация. По окончании срока действия сертификата и по прошествии 180-дневного льготного периода применить подпись переноса невозможно. Если не выполнить перенос сертификата, пользователи должны будут удалить текущую версию приложения перед установкой новой. Льготный период применяется только к приложениям, для которых в пространстве имен дескриптора приложения указана версия AIR 1.5.3 или более поздняя версия. Обратите внимание, что льготный период не предусмотрен в более ранних версиях среды выполнения AIR.

В версиях, предшествующих AIR 1.1, поддержка подписей переноса отсутствует. Для применения подписи переноса необходимо создать пакет приложения с помощью SDK версии 1.1 или более поздней версии.

Приложения, развертываемые с помощью файлов AIR, называются приложениями с профилем настольного компьютера. Нельзя использовать ADT для упаковки исходного установщика для приложения AIR, если файл дескриптора приложения не поддерживает профиль настольного компьютера. Этот профиль можно запретить путем использования элемента supportedProfiles в файле дескриптора приложения. См. раздел Профили устройств и supportedProfiles.

Примечание. Параметры в файле дескриптора определяют идентификационные данные приложения AIR и путь установки по умолчанию. См. раздел Файлы дескриптора приложения AIR.

Идентификаторы издателя

Начиная с версии AIR 1.5.3, идентификатор издателя не используется. В новых приложениях (изначально опубликованных с помощью AIR 1.5.3 или более поздней версии) не требуется и не должен использоваться идентификатор издателя.

При обновлении приложений, опубликованных с помощью более ранних версий AIR, необходимо указать исходный идентификатор издателя в файле дескриптора приложения. В противном случае установленная версия приложения и его обновленная версия будут считаться различными приложениями. Если используется другой идентификатор издателя (или если он не используется), пользователи должны будут удалить текущую версию приложения перед установкой новой.

Чтобы определить исходный идентификатор издателя, найдите файл publisherid в подкаталоге META-INF/AIR, в котором установлено исходное приложение. Строка в этом файле является идентификатором издателя. Чтобы указать идентификатор издателя вручную, в дескрипторе приложения должна быть указана среда выполнения AIR 1.5.3 (или более поздней версии) в объявлении пространства имен файла дескриптора приложения.

Для приложений, опубликованных с помощью версии AIR, предшествующей 1.5.3, или опубликованных с помощью AIR 1.5.3 SDK, при указании в пространстве имен дескриптора приложения более ранней версии AIR — идентификатор издателя вычисляется на основе сертификата подписи. Этот идентификатор используется совместно с идентификатором приложения для определения подлинности приложения. При наличии идентификатора издателя он используется в следующих целях:

  • Проверка того, является ли устанавливаемый файл AIR обновлением или новым приложением

  • как часть ключа шифрования для зашифрованного локального хранилища;

  • как часть пути к каталогу хранения приложения;

  • как часть строки для локальных соединений;

  • как часть строки учетных данных, используемой для вызова приложения в API-интерфейсе обозревателя AIR;

  • как часть идентификатора OSID (используется при создании пользовательских программ установки/удаления).

В версиях, предшествующих AIR 1.5.3, идентификатор издателя приложения мог изменяться, если обновление для приложения было подписано подписью переноса с использованием нового или обновленного сертификата. При изменении идентификатора издателя также изменяется поведение функций AIR, зависящих от идентификатора. Например, данные в существующем зашифрованном локальном хранилище становятся недоступными, и в любых экземплярах Flash или AIR, создающих локальное соединение с приложением, в строке подключения должен использоваться новый идентификатор.

В AIR 1.5.3 или более поздней версии идентификатор разработчика не связан с сертификатом подписи и присваивается только в том случае, если в дескрипторе приложения содержится тег publisherID. Приложение невозможно обновить, если указанный в пакете обновления AIR идентификатор издателя не совпадает с текущим идентификатором издателя.

Упаковка с помощью ADT

Упаковку приложения AIR можно выполнить с помощью инструмента командной строки AIR ADT. Перед упаковкой необходимо скомпилировать код ActionScript, MXML, а также все коды расширения. Кроме того, требуется сертификат для подписи кода.

Подробная информация о командах и параметрах ADT представлена в разделе AIR Developer Tool (ADT).

Создание пакета AIR

Чтобы создать пакет AIR, используйте команду ADT package, установив для сборок типа пакета air.

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

В данном примере предполагается, что путь к инструменту ADT указан в определении пути оболочки командной строки. (Инструкции см. в разделе Переменные среды Path.)

Команда должна быть запущена из каталога с файлами приложения. В данном примере представлены файлы приложений myApp-app.xml (файл дескриптора приложения), myApp.swf и каталог значков.

Если приложение запускается, как показано в примере, ADT предложит ввести пароль для хранилища ключей (при вводе пароль не отображается, поэтому после завершения ввода требуется просто нажать Enter).

Создание пакета AIR на основе файла AIRI

Для создания устанавливаемого пакета подпишите файл AIRI:

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