Adobe AIR 애플리케이션 배포후 publisher ID 파일이 누락되는 문제.

2010/02/01 12:32

최근에 Flex 4.0 기반으로 Adobe AIR 애플리케이션을 개발하는 프로젝트를 맡았다. 현시점(2010.2.1) Flex 4.0 SDK에 함께 있는 AIR SDK 버전은 한단계 구버전인 1.5.2이기 때문에 가장 최신 버전인 1.5.3을 기존 Flex 4.0 SDK에 덮어씌운 상태에서 개발을 진행했었다. 문제없이 개발할 수 있다.

그런데 애플리케이션 배포시 문제가 발생했다. AIR 애플리케이션을 설치하면 설치 디렉토리 밑에 META-INF/AIR/publisherid 파일이 존재해야 한다. 그런데 이 파일이 없는 것이다. publisherid는 인증서의 고유 ID를 담고 있다. 이 파일이 없는 상태에서 배포, 업데이트 모두 잘되지만 badge에서 이미 설치된 AIR 애플리케이션이 있는지 여부를 판단할 수 없었다. 사실 배포,업데이트가 잘 되기 때문에 이 상태로 배포해도 문제는 없지만 너무 꺼름칙했다. (AIR의 장점중 하나가 쉽게 설치된 AIR 애플리케이션과 Flash의 연동이 큰 장점 아니던가....)

이 문제의 원인을 찾고자 별짓을 다하다가 SDK 문제라는 것에 귀결을 내리게 되었다. 문제는 Flex 4.0 SDK에 AIR 1.5.3 SDK를 덮은것에서 비롯되었다. 기존 Flex 4.0 SDK에서 AIR 1.5.2 기반으로 만들어 배포하면 Publisher ID 파일이 있지만 AIR 1.5.3으로 덮어씌우고 배포하면 이 파일이 없었던 것이다. 개발, 컴파일까지 모두 잘되는데 말이다. ㅎㅎ 

결국 나는 Flex 4.0 기반으로 애플리케이션을 거의 완성한 상태라서 AIR 1.5.2 기반으로 배포할 수 밖에 없게 되었다. 편리하고 빠른 개발을 위해 Flex 4.0를 선택했지만 AIR 버전이 구버전으로 인한 문제점은 정말 예상치 못한 일이었다.

개발하다 보면 별에 별일이 많은데... 정말 이렇게 크리티컬한 상황까지 보게 되니 정말 웃기기 까지 한다.

질문?
Flex 4.0에 AIR 1.5.3을 덮어씌워도 publisher id 파일이 누락되지 않도록 하는 방법은 뭘까요? 혹시 알게되면 댓글이나 트랙백 부탁합니다.

추가 1
Flex 3의 최신버전인 Flex 3.5의 경우에는 AIR 1.5.3 SDK가 함께 있는데... Flex 4는 왜???? ㅡㅡ;;

추가 2
Flex 4.0 SDK의 beta 2 버전은 4.0.0.10485 이다. 이 버전은 AIR 1.5.2 SDK이다. 하지만 최신 Nightly Builder 버전으로 다운로드 받으면 AIR 1.5.3이 기본이다. 그냥 이걸로 개발해야겠다.

추가 3
Adobe AIR 1.5.3 부터는 PublisherID가 기본적으로 제거됩니다. http://blog.jidolstar.com/655

글쓴이 : 지돌스타(http://blog.jidolstar.com/652)

저작자 표시 비영리 동일 조건 변경 허락

Adobe AIR , , , , , , , ,

  1. Blog Icon
    naiyumie

    아 글 잘 보았습니다.
    개발환경이 꼬인것이군요....

    C:\Program Files\HelloAIR\META-INF\AIR 폴더에
    publisherid파일은 정상적으루 있네요..
    개발 환경 세팅은 지돌스타님의 블로그를 보고 그대로 했는데...


    http://www.naiyumie.pe.kr/Air/ApollocationBadge.html

  2. 뭐가 꼬였는지 저도 모르겠어요. ㅎㅎ

  3. 어라.. 전 AIR 1.5.3이 들어있는데요 ㅎㅎ

  4. 네~~ beta가 아닌 가장 최신이면 그렇더군요. ^^

  5. 아.. beta2 branch에 놓으셨군요 ㅎㅎ
    하긴.. trunk나 4.0.0 브랜치에 놓으면 flex-config.xml 파일이 Flash Builder beta2에서 인식 못하는 부분이 있어서 불편.. ㅎㅎ

  6. 형 저는 AIR 2.0 SDK로 사용하고 있는데 publisher id 파일 있네요.
    정말 형꺼만 어떻게 이상하게 꼬인거 아닌가 싶어요 ㅋㅋ

  7. 여러번 반복해도 마찬가지더라고
    그래서 다음부터는 Flex SDK에 AIR를 덮어씌워 개발하는 방식을 지양할려고해. 물론 테스트가 주목적이라면 그렇게 해야겠지만..

  8. Blog Icon
    leigh

    좋은 글 잘 보고 있습니다.

    저는 Flash Builder 4 beta 2에 air 2.0 beta 2로 애플리케이션을 개발하고 있는데, 역시 publishid가 생기지 않더군요.
    왜 그런지 구글링을 좀 해봤더니,

    As of AIR 1.5.3, publisher IDs are deprecated. New applications (originally published with AIR 1.5.3 or later) do not need and should not specify a publisher ID.

    이런 어도비 문서를 찾을 수 있었습니다.

    http://help.adobe.com/en_US/AIR/1.5/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7fd6.html

    혹시 이것 때문이 아닐까 싶네요.

  9. 그렇군요....

    http://www.adobe.com/support/documentation/en/air/1_5_3/releasenotes_developers.html

    http://thanksmister.com/index.php/archive/migrating-expired-certificates-air153/


    Publisher ID가 필요하지 않는 애플리케이션인 경우라면 명시적으로 넣지 않아도 된다는 의미가 되는군요. 기존 AIR버전을 AIR1.5.3으로 업데이트해야하는 경우라면 디스크립터 파일에 publisherId를 지정해야하네요. 어허.... 전 왜 이런 내용을 못찾았을까요?

    정말 감사합니다. 모든 의문이 풀렸네요.

  10. Blog Icon

    안녕하세요. 자주 찾아와서 정보 많이 얻어갑니다. 감사합니다.

    그런데 제가 이번에 air 프로그램 수정을 위해 이전에 사용하던 인증서를 가지고 그대로 컴파일을 햇는데요,

    air의 버전이 1.5.1로 선언되어 있기때문에 publisherid 파일이 존재하고, 디스크립션에도 있습니다.

    그런데 컴파일 한 air 프로그램을 설치했더니 작동을 안하네요!(디버그 모드에서는 잘되구요)

    게다가 업데이트도 되질않고, 이미 설치를 했는데도 찾질 못하네요.

    그래서 publisherid 파일을 열어 확인해보니 이전 버전의 air프로그램이 가지고 있던 publisherid와 동일한 아이디가 아니였습니다...

    이전 버전 프로그램을 삭제해도 새루 컴파일 한 프로그램이 설치 후에 작동이 안되네요..

    air 버전 1.5.3으로 수정하고 디스크립션 파일에서 pubid를 삭제하고 새로 설치해봐도 설치, 컴파일 다되도 작동을 안하네요 ㅠㅠ

    혹시 어디가 문제일까요 ㅠㅠ