WonHada.com으로 이전

[Adobe AIR] AIR 어플리케이션 업데이트 본문

Adobe AIR

[Adobe AIR] AIR 어플리케이션 업데이트

반주부 2008. 3. 26. 20:20
반응형


*  AIR 어플리케이션 업데이트
- 사용자는 그들의 컴퓨터 또는 브라우져(AIR Badge를 이용해서)에서 AIR 파일을 더블-클릭 함으로써 설치 또는 업데이트 할 수 있고, Adobe AIR 인스톨러 어플리케이션은 인스톨을 관리합니다. 만약 이미 설치된 어플리케이션이 있다면 업데이트 할 것을 권고합니다.

또한 당신은 Updater 클래스를 이용하여 이미 설치된 어플리케이션을 업데이트 할 수도 있습니다. (설치된 어플리케이션이, 다운로드 하고 설치할 새 버젼을 찾을지도 모릅니다.) Updater 클래스는 사용자의 컴퓨터에 AIR 파일을 놓고 업데이트를 하도록 하는 update() 메소드를 포함합니다.

<어플리케이션 업데이트>
- Updater 클래스(flash.desktop 패키지의)는 하나의 메소드(update())만 포함하는데, 이는 현재 실행되고 있는 어플리케이션에 다른 버젼을 업데이트 하기위해 사용할 수 있습니다. 예를 들어, 사용자의 데스크탑에 다음과 같은 AIR 파일("Sample_App_v2.air")이 있으면, 아래의 코드는 어플리케이션을 업데이트 합니다:

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

Updater 클래스를 사용하기 전에, 사용자 또는 어플리케이션은 컴퓨터에 AIR 파일의 업데이트 버젼을 다운로드 해야 합니다.

<메소드 호출 결과>
- 실행중인 어플리케이션이 update() 메소드를 호출할 때, 런타임은 어플리케이션을 종료합니다. 그리고 AIR 파일에서 새로운 버젼을 설치하려고 합니다.
런타임은 AIR 파일의 어플리케이션 ID, 퍼블리셔 ID와 update() 메소드가 호출된 어플리케이션에 대한 어플리케이션 ID, 퍼블리셔 ID를 비교합니다. (어플리케이션 ID와 퍼블리셔 ID에 대한 정보는 88페이지의 "Setting AIR application properties"를 참고하세요) 또한 버젼 스트링값도 체크합니다.
만약 설치가 성공하면, 런타임은 새 버젼의 어플리케이션을 실행합니다.
그렇지 않다면(설치가 완료되지 않았다면), 기존 버젼의 어플리케이션을 실행합니다.

Mac OS에서는, 어플리케이션의 업데이트를 위해 디렉토리에 접근하는 시스템 권한을 가져야 하며, 윈도우(Windows)에서는 관리자 권한을 가져야 합니다.
만약 새롭게 업데이트 된 어플리케이션이 새 버젼의 런타임을 필요로 하면, 새 버젼의 런타임이 설치됩니다.
런타임을 업데이트 하기 위해, 사용자는 관리자 권한을 가지고 있어야 합니다.
ADL을 사용하고 있는 어플리케이션을 테스트할 때, update() 메소드를 호출하면 런타임 예외 에러가 발생합니다.

<버젼 스트링값에 대해>
- update() 메소드의 버젼 파라미터로 지정하는 스트링값(문자열)은 설치되는 AIR 파일의 'application descriptor' 파일의 요소와 동일하게 입력해야 합니다. 버젼 파라미터를 기술하는 것은 보안을 위해 필요합니다.
AIR 파일에서 버젼을 검사함에 따라 현재 설치된 어플리케이션에서는 수정되었을 법한, 보안에 취약한 부분을 포함할지도 모르는 이전 버젼을 설치하지 않을 것입니다.
어플리케이션은 또한 다운그레이드 공격을 막기 위해 버젼 스트링값을 체크하기도 합니다.

버젼 스트링값은 어떤 형식이든 상관없습니다. 예를 들어, "2.01" 또는 "version 2"도 가능합니다.
이 스트링값의 형식은 어플리케이션 개발자가 정하면 됩니다. 런타임은 버젼 스트링값을 확인하지 않습니다.
어플리케이션 코드는 어플리케이션을 업데이트 하기전에 이것을 해야 합니다.

만약 Adobe AIR 어플리케이션을 웹을 통해 다운로드 하면, 웹서비스가 어플리케이션에 버젼을 알릴 수 있는 매커니즘을 가지도록 하는 것이 좋습니다. 어플리케이션은 update() 메소드의 버젼 파라미터로써 이 스트링값을 사용할 수 있습니다.
만약 AIR 파일을 다른 수단에 의해 얻게 되면, AIR 어플리케이션은 버젼 정보를 결정하기 위해 AIR 파일을 조사할 수 있습니다. (AIR 파일은 ZIP 압축 파일입니다. 그리고 'application descriptor' 파일은 압축 파일의 두번째에 기록되어 있습니다.)

<어플리케이션 업데이트 인터페이스를 사용자 정의하기>
- AIR는 기본 업데이트 인터페이스를 포함합니다:

사용자 삽입 이미지























이 인터페이스는 항상 첫 설치때 사용됩니다. 그러나, 이후에는 자신의 인터페이스를 정의할 수 있습니다.
이것을 하기 위해, 현재 설치된 어플리케이션을 위한 'application descriptor' 파일에 customUpdateUI 요소를 기술하세요:

<customUpdateUI>true</customUpdateUI>

어플리케이션이 설치되고 사용자가 어플리케이션 ID, 퍼블리셔 ID를 가지는 AIR 파일을 열었을 때, 런타임은 기본 AIR 어플리케이션 인스톨러 대신 그 어플리케이션을 엽니다.
자세한 내용은, 93 페이지의 "Providing a custom user interface for application updates"를 참고하세요.
어플리케이션은 NativeApplication.nativeApplication 오브젝트가 invoke 이벤트를 발생할 때 업데이트를 결정할 수 있습니다. 만일 업데이트를 결정하면, 그것은 사용자에게 자신의 설치 인터페이스(기본 인터페이스와 다른)를 보여줄 수 있습니다.

<사용자의 컴퓨터에 AIR 파일 다운로드 하기>
-Updater 클래스를 사용하기 위해, 사용자의 컴퓨터에 AIR 파일을 저장해야 합니다. 다음 예는, URL(http://example.com/air/updates/Sample_App_v2.air)을 통해 AIR 파일을 읽고 어플리케이션-스토리지 폴더에 AIR 파일을 저장합니다:

<어플리케이션이 처음 시작되는지 체크>
- 어플리케이션이 처음 시작될 때, "getting started" 또는 "welcome" 메시지를 제공하고 싶을 수 있습니다. 그 때, 사용할 수 있는 코드입니다:

[Flash] http://airdev.tistory.com/attachment/gk200000000003.swf








반응형