응용 프로그램 업데이트

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 파일에 지정된 응용 프로그램 ID 및 제작자 ID가 update() 메서드를 호출하는 응용 프로그램의 응용 프로그램 ID 및 제작자 ID와 일치하는지 확인합니다. 응용 프로그램 ID 및 제작자 ID에 대한 자세한 내용은 AIR 응용 프로그램 설명자 파일 을 참조하십시오. 또한 버전 문자열이 update() 메서드에 전달된 version 문자열과 일치하는지도 확인합니다. 런타임은 설치가 성공적으로 완료되면 새 버전의 응용 프로그램을 열고, 그렇지 않으면(설치가 완료될 수 없으면) 기존(설치 전) 버전의 응용 프로그램을 다시 엽니다.

Mac OS에서는 업데이트된 버전의 응용 프로그램을 설치하려면 사용자에게 응용 프로그램 디렉토리에 설치할 수 있는 적절한 시스템 권한이 필요합니다. Windows 및 Linux에서는 사용자에게 관리 권한이 있어야 합니다.

업데이트된 버전의 응용 프로그램에 업데이트된 버전의 런타임이 필요한 경우에는 새 런타임 버전이 설치됩니다. 런타임을 업데이트하려면 사용자에게 컴퓨터에 대한 관리 권한이 필요합니다.

ADL을 사용하여 응용 프로그램을 테스트할 때 update() 메서드를 호출하면 런타임 예외가 발생합니다.

버전 문자열

update() 메서드의 version 매개 변수로 지정된 문자열이 응용 프로그램 설명자 파일의 version 또는 versionNumber 요소에 있는 문자열과 일치해야 AIR 파일이 설치됩니다. version 매개 변수를 지정하는 것은 보안상의 이유로 필요합니다. 응용 프로그램에서 AIR 파일의 버전 번호를 확인하도록 설정하면 응용 프로그램에서 의도하지 않게 이전 버전을 설치하는 일은 없어집니다. 이전 버전의 응용 프로그램에는 현재 설치된 응용 프로그램에서 수정된 보안 취약점이 있을 수 있습니다. 또한 응용 프로그램에서는 AIR 파일의 버전 문자열을 설치된 응용 프로그램의 버전 문자열과 비교하여 다운그레이드 공격을 방지해야 합니다.

AIR 2.5 이전 버전에서는 포맷에 관계없이 모든 버전 문자열을 사용할 수 있습니다. 예를 들어 "2.01" 또는 "version 2"일 수 있습니다. AIR 2.5 이상에서는 버전 문자열이 마침표로 분리된 최대 3개의 세 자리 숫자여야 합니다. 예를 들어 “.0”, “1.0” 및 “67.89.999”가 모두 유효한 버전 번호입니다. 응용 프로그램을 업데이트하기 전에 업데이트 버전 문자열의 유효성을 검사해야 합니다.

Adobe AIR 응용 프로그램에서 AIR 파일을 웹을 통해 다운로드하는 경우 웹 서비스에서 Adobe AIR 응용 프로그램에 다운로드할 버전을 알릴 수 있는 메커니즘을 마련하는 것이 좋습니다. 이렇게 하면 응용 프로그램에서 이 문자열을 update() 메서드의 version 매개 변수로 사용할 수 있습니다. AIR 파일의 버전을 알 수 없는 다른 방법으로 AIR 파일을 얻은 경우 AIR 응용 프로그램에서 AIR 파일을 검사하여 버전 정보를 확인할 수 있습니다. AIR 파일은 ZIP 압축 파일이고 응용 프로그램 설명자 파일은 압축 파일의 두 번째 레코드입니다.

응용 프로그램 설명자 파일에 대한 자세한 내용은 AIR 응용 프로그램 설명자 파일 을 참조하십시오.

응용 프로그램 업데이트를 위한 서명 작업 과정

애드혹 방식으로 업데이트를 제작하면 여러 응용 프로그램 버전을 관리하는 작업이 복잡해지고 인증서 만료 날짜를 추적하는 일도 어려워집니다. 업데이트를 제작하기 전에 인증서가 만료될 수도 있습니다.

Adobe AIR 런타임은 마이그레이션 서명 없이 제작된 응용 프로그램 업데이트를 새로운 응용 프로그램으로 취급합니다. 사용자는 먼저 현재 AIR 응용 프로그램을 제거한 후에야 응용 프로그램 업데이트를 설치할 수 있습니다.

문제를 해결하려면 별도의 배포 URL에 각각의 업데이트된 응용 프로그램을 최신 인증서와 함께 업로드하십시오. 인증서가 180일의 유예 기간 안에 있을 때는 마이그레이션 서명을 적용할 것을 알리는 메커니즘을 포함하십시오. 자세한 내용은 업데이트된 버전의 AIR 응용 프로그램에 서명 을 참조하십시오.

서명을 적용하는 방법에 대한 자세한 내용은 ADT 명령 을 참조하십시오.

다음 작업을 수행하여 마이그레이션 서명을 적용하는 프로세스를 간소화합니다.

  • 각각의 업데이트된 응용 프로그램을 별도의 배포 URL에 업로드합니다.

  • 업그레이드 설명자 XML 파일과 업데이트의 최신 인증서를 같은 URL에 업로드합니다.

  • 최신 인증서를 사용하여 업데이트된 응용 프로그램에 서명합니다.

  • 다른 URL에 있는 이전 버전에 서명할 때 사용한 인증서를 사용하여 업데이트된 응용 프로그램에 마이그레이션 서명을 적용합니다.