Подписание обновленной версии приложения AIR

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

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

Прежде чем применить подпись переноса, обратите внимание на следующие моменты.

  • Чтобы применить подпись переноса, исходный сертификат должен быть действителен или быть просроченным не более чем на 365 дней. Этот период считается льготным, и его продолжительность может быть изменена в будущем.

    Примечание. До выхода AIR 2.6 льготный период составлял 180 дней.
  • После окончания 365-дневного льготного периода, который отсчитывается с момента истечения действия сертификата, подпись переноса не может быть применена. В этом случае пользователям потребуется перед установкой обновления удалить текущую версию приложения.

  • 365-дневный льготный период применяется только к приложениям, для которых в пространстве имен дескриптора приложения указана версия AIR 1.5.3 или более поздняя версия.

Важная информация. Подписание обновлений с использованием подписи переноса просроченного сертификата является временным решением. Окончательное решение предполагает разработку стандартизированной процедуры подписания для управления развертыванием обновлений приложений. К примеру, каждое обновление подписывается последним имеющимся сертификатом, и применяется сертификат переноса — сертификат, использованный для подписи предыдущего обновления (если таковое было). Каждое обновление размещается на сервере с собственным URL, с помощью которого происходит загрузка приложения пользователями. Дополнительные сведения см. в разделе « Процедура подписания для обновлений приложений ».

Следующая таблица и рисунок иллюстрируют процесс обращения с подписями переноса:

Сценарий

Состояние оригинального сертификата

Действие разработчика

Действие пользователя

Приложение на основе среды выполнения Adobe AIR 1.5.3 или более новой версии

Действительный

Опубликуйте последнюю версию приложения AIR

Действия не требуются

Приложение обновляется автоматически

Срок истек, но не более 365 дней назад

Подпишите приложение новым сертификатом. Примените подпись переноса с использованием устаревшего сертификата.

Действия не требуются

Приложение обновляется автоматически

Просрочен, льготный период закончился

Подпись переноса не может быть применена для обновления приложения AIR.

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

Удалите текущую версию приложения AIR и установите последнюю версию

  • Приложение на основе среды выполнения Adobe AIR 1.5.2 или более ранней версии

  • Идентификатор издателя в дескрипторе обновленного приложения совпадает с идентификатором предыдущей версии

Действительный

Опубликуйте последнюю версию приложения AIR

Действия не требуются

Приложение обновляется автоматически

Просрочен, льготный период закончился

Подпись переноса не может быть применена для обновления приложения AIR.

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

Удалите текущую версию приложения AIR и установите последнюю версию

  • Приложение на основе среды выполнения Adobe AIR 1.5.2 или более ранней версии

  • Идентификатор издателя в дескрипторе обновленного приложения не совпадает с идентификатором предыдущей версии

Любой

Подпишите приложение AIR действующим сертификатом и опубликуйте его последнюю версию.

Удалите текущую версию приложения AIR и установите последнюю версию

Процедура подписания для обновлений

Перенос приложения AIR для использования нового сертификата

Процедура переноса приложения AIR на новый сертификат при обновлении приложения:

  1. Создайте обновление приложения

  2. Упакуйте и подпишите файл обновления AIR новым сертификатом

  3. Подпишите файл AIR снова, на этот раз оригинальным сертификатом с помощью команды ADT -migrate

Файл AIR, подписанный с помощью команды -migrate , может также использоваться для установки новой версии приложения — не только для обновления любой прошлой версии, подписанной устаревшим сертификатом.

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

Используйте команду ADT - migrate со следующим синтаксисом:

adt -migrate SIGNING_OPTIONS air_file_in air_file_out
  • SIGNING_OPTIONS . Параметры подписи определяют закрытый ключ и сертификат подписи файла AIR. Эти параметры должны определять оригинальный сертификат подписи (их описание приводится в разделе « Параметры подписания кода ADT »).

  • air_file_in — обновляемый файл AIR, подписанный новым сертификатом.

  • air_file_out — создаваемый файл AIR.

Примечание. Имена входных и выходных файлов AIR должны отличаться.

Следующий пример иллюстрирует вызов функции ADT с флагом -migrate для применения подписи переноса к обновленной версии приложения AIR:

adt -migrate -storetype pkcs12 -keystore cert.p12 myAppIn.air myApp.air
Примечание. Команда -migrate была добавлена в ADT в AIR версии 1.1.

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

Приложение AIR, опубликованное как собственный файл установки для конкретной платформы (например, приложение, использующее собственный API платформы), не может быть подписано командой ADT -migrate , поскольку не является файлом air. Для переноса приложения AIR, опубликованного в качестве собственного расширения платформы, на новый сертификат предусмотрена другая процедура:

  1. Создайте обновление приложения.

  2. Убедитесь, что в файле-дескрипторе приложения (app.xml) тег <supportedProfiles> содержит как профиль настольной системы (desktop), так и расширенный профиль настольной системы (extendedDesktop); либо совсем удалите тег <supportedProfiles> из дескриптора приложения.

  3. Упакуйте и подпишите обновленное приложение как файл air при помощи команды ADT -package с новым сертификатом.

  4. Примените сертификат переноса к файлу .air, используя команду ADT -migrate с оригинальным сертификатом (как описано ранее в разделе « Перенос приложения AIR для использования нового сертификата »).

  5. Упакуйте файл .air в виде собственного установочного файла платформы при помощи команды ADT -package с флагом -target native . Поскольку приложение уже подписано, на этом шаге нет необходимости указывать сертификат подписи.

В следующем примере показаны этапы 3–5 этой процедуры. Код вызывает программу ADT с командой -package , затем — с командой -migrate , затем снова с командой -package для упаковки обновленной версии приложения AIR в виде собственного файла установки данной платформы:

adt -package -storetype pkcs12 -keystore new_cert.p12 myAppUpdated.air myApp.xml myApp.swf 
adt -migrate -storetype pkcs12 -keystore original_cert.p12 myAppUpdated.air myAppMigrate.air 
adt -package -target native myApp.exe myAppMigrate.air

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

Приложение AIR, использующее собственное расширение платформы, не может быть подписано при помощи команды ADT -migrate . Его перенос также не может быть выполнен по процедуре переноса приложения AIR с собственным файлом установки, поскольку оно не может быть опубликовано как промежуточный файл .air. Для переноса приложения AIR, использующего собственное расширение платформы, на новый сертификат предусмотрена другая процедура:

  1. Создайте обновление приложения

  2. Упакуйте и подпишите обновленный собственный файл установки при помощи команды ADT -package . Упакуйте приложение с указанием нового сертификата и включите в команду флаг -migrate с указанием оригинального сертификата.

Для вызова команды ADT -package с флагом -migrate используется следующий синтаксис:

adt -package AIR_SIGNING_OPTIONS -migrate MIGRATION_SIGNING_OPTIONS -target package_type NATIVE_SIGNING_OPTIONS output app_descriptor FILE_OPTIONS
  • AIR_SIGNING_OPTIONS . Параметры подписи определяют закрытый ключ и сертификат подписи файла AIR. Эти параметры определяют новый сертификат подписи (их описание приводится в разделе « Параметры подписания кода ADT »).

  • MIGRATION_SIGNING_OPTIONS . Параметры подписи определяют закрытый ключ и сертификат подписи файла AIR. Эти параметры определяют оригинальный сертификат подписи (их описание приводится в разделе « Параметры подписания кода ADT »).

  • Прочие параметры те же, что применяются при упаковке приложения AIR с собственным файлом установки; они описаны в разделе « Команда ADT package ».

В следующем примере иллюстрируется вызов программы ADT с командой -package и флагом -migrate для упаковки обновленной версии приложения AIR, использующего собственное расширение платформы, и для применения к нему подписи переноса:

adt -package -storetype pkcs12 -keystore new_cert.p12 -migrate -storetype pkcs12 -keystore original_cert.p12 -target native myApp.exe myApp.xml myApp.swf
Примечание. Флаг -migrate команды -package доступен в программе ADT в версиях AIR 3.6 и более поздних.