Об обновлении приложений

Класс Updater (в пакете flash.desktop) содержит один метод, update() , который можно использовать для обновления выполняемого приложения. Например, если на рабочем столе пользователя размещена версия файла AIR («Sample_App_v2.air»), следующий код обновляет приложение.

Пример 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);

Пример JavaScript:

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

Перед использованием класса Updater приложением пользователь или приложение должны загрузить обновленную версию файла AIR на компьютер. Дополнительные сведения см. в разделе « Загрузка файла AIR на компьютер пользователя ».

Результаты вызова метода Updater.update()

Когда приложение вызывает в среде выполнения метод update() , среда выполнения закрывает приложение, а затем пытается установить новую версию из файла AIR. Среда выполнения проверяет идентификатор приложения и идентификатор издателя, указанные в файле AIR, на соответствие идентификатору приложения и идентификатору издателя приложения, вызывающего метод update() . (Сведения об идентификаторе приложения и идентификаторе издателя см. в разделе « Файлы дескриптора приложения AIR ».) Она также проверяет соответствие строки version строке version , передаваемой методу update() . Если установка прошла успешно, среда выполнения открывает новую версию приложения. В противном случае (если установка не может быть завершена) снова открывается существующая (до установки) версия приложения.

В случае с системой Mac OS для установки обновленной версии приложения пользователь должен иметь соответствующие системные привилегии для установки в каталог приложения. В Windows и Linux пользователь должен обладать правами администратора.

Если обновленная версия приложения требует обновленной версии среды выполнения, устанавливается новая версия среды выполнения. Для обновления среды выполнения на компьютере необходимы права администратора.

При тестировании приложения в ADL вызов метода update() выдает исключение среды выполнения.

О строке version

Строка, представленная параметром version метода update() , должна соответствовать строке в элементе version или versionNumber в файле дескриптора приложения устанавливаемого файла AIR. Задание параметра version является обязательным в целях защиты. Заставив приложение проверять номер версии в файле AIR, можно предотвратить случайную установку старой версии приложения. (В более старой версии приложения возможны уязвимые места в системе защиты, которые были исправлены в установленном приложении.) Приложение должно сверить строку version в файле AIR со строкой version установленного приложения во избежание атак с установкой устаревшей версии.

До версии AIR 2.5 строка version может иметь любой формат. Например, это может выглядеть как «2.01» или как «version 2». Начиная с версии AIR 2.5 строка version должна содержать последовательность из не более чем трех трехзначных чисел, разделенных точкой. Например, допустимыми номерами версий могут быть следующие: «.0», «1.0» и «67.89.999». Перед обновлением приложения необходимо задать корректную строку version.

Если приложение Adobe AIR загружает файл AIR из Интернета, рекомендуется иметь механизм, при помощи которого веб-служба может сообщить приложению Adobe AIR номер загружаемой версии. Приложение может затем использовать эту строку в качестве параметра version метода update() . При получении файла AIR из другого источника, который не предоставляет информацию о версии файла AIR, приложение AIR может проверить файл AIR для получения информации о версии. (Файл AIR является сжатым ZIP-архивом, а файл дескриптора приложения занимает вторую позицию в архиве.)

Сведения о файле дескриптора приложения см. в разделе « Файлы дескриптора приложения AIR ».

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

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

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

Для разрешения проблемы загрузите все обновленные приложения с последним сертификатом на отдельный URL развертывания. Добавьте механизм, который будет напоминать вам применять подпись переноса до окончания 180-дневного льготного периода. Дополнительные сведения см. в разделе « Подписание обновленной версии приложения AIR ».

Дополнительные сведения см. в разделе « Команды ADT ».

Выполнение следующих операций позволит упростить процесс применения подписи переноса.

  • Загрузка каждого обновленного приложения на отдельный URL развертывания.

  • Загрузка обновленного XML-файла дескриптор и последнего сертификата для обновления на один URL.

  • Подписание обновленного приложения с помощью последнего сертификата.

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