Adobe Air & Flex/Air개발

Air Signed native installer(exe) 업데이트 방법

꿈꾸는새벽별 2013. 1. 29. 03:21

참고 : http://www.adobe.com/devnet/air/articles/updating-air-apps-native-installer.html

 

Air 패키지 배포시 *.air의 업데이트 기능은 잘되는데..

Native installer(exe) 파일 배포시 업데이트 문제가 발생된다.

error 16828 인가? 흠..

 

기술문서상으로

"Updater 클래스는 데스크톱 프로파일에서만 지원되며, 확장 데스크톱 응용 프로그램(기본 설치 프로그램을 사용하여 설치한 응용 프로그램)과 AIR모바일 프로파일 또는 AIR for TV 프로파일에서는 지원되지 않습니다.Updater.isSupported속성을 확인하십시오. "

 

젠장 이말이 뭔말이냐..

Reference 기술문서에 떡하니 exe 업데이트는 지원하지 않는다는 말이다.

 

확장 데스크톱 응용 프로그램(기본 설치 프로그램으로 설치한 응용 프로그램)에서는 새로운 버전의 기본 설치 프로그램을 다운로드하여 File.openWithDefaultApplication() 메서드를 통해 실행할 수 있습니다.

 

힌트만 알려줄 뿐 업데이트 방법에 대해서는 나와 있지 않다. (레퍼런스 어딘가에는 존재 하지만..흠..)

Native Installer 로 패키징된 어플리케이션을 업데이트 시키는건 의외로 간단 하다. 하지만 왠지 찝찝하게 느껴지는 업데이트 ... 일단 업데이트 시킬 파일을 다운로드 받는다. 그리고 실행... 구체적인 코드를 다음과 같다. (파일을 다운로드 받는 과정은 생략...)

 

자세한 프로그램 코딩은

FlashBuilder MOS_Library(MOS등)

kr.co.mdsl.co.kr.update.NativeUpdater.as SVN파일을 참조하자..

 

즉 이 NativeUpdater 클래스가 exe 파일을 다운로드 받아 재실행시킨다.

 

  var _updater:NativeUpdater = new NativeUpdater();
   var _updaterURL:String = "http://airflex.ddorai.co.kr/appUpdate/DictionaryClipboard/update.xml";
   _updater.updateApplication(_updaterURL);
   
   app.rightView1.version.text = "Version : "+_updater.getVersion();

 

 

위코드를 통해 업데이트가 아닌 설치파일 바꿔치기를 할 수 있다..바꿔치기라..흠..; 찜찜한데..그래도 최선의 방법 인듯..싶다..

 

위의 코드를 실행 시키면 실행 되고 있는 어플리케이션은 종료 되고 새로 다운 받은 어플리케이션 파일을 실행 한다. 해당 파일이 실행 되면 다음과 같은 설치 화면이 나타나고 바꾸기를 클릭하면 새로운 버전으로 설치.



 

 업데이트라고 하기에는 좀 빈약해 보이는 방법이다. 좀 더 깔끔하게 설치 및 업데이트를 하고 싶다고 하면 설치 및 제거 업데이트를 구현한 인스톨러를 만들고 그 안에서 Native Installer 로 패키징된 파일을 설치 하는 방법을 사용해야 한다. AIR 자체적으로는 위의 화면을 바꾸는 방법이 아직까지는 제공되지 않고 있지만... Daum 마이피플이 인스톨러를 이용하여 설치/제거/업데이트를 하는 경우가 이에  속 한다.




 


Adobe AIR 가 원소스 멀티플랫폼이라는 장점을 내세우면서 홍보를 하고 있는데... 아직 까지는 설치 호환성에서 다소 문제가  있어 보인다. 물론 사용자 컴퓨터 환경이 너무 다양해서 테스트 못하는 점도 이해 하지만 모바일에 신경 쓰기 이전에 데스크탑용 AIR Runtime 의 설치 호환성을 좀 더 보완해 줬으면 하는 바램 이다.