본문 바로가기

Blog/Flex

AIR SDK로 Native Installer (exe) 만들기

Step 1 : FlashBuilder를 통해 air 파일을 생성

이때 NativeProcess를 사용하므로 설정파일의 supportedProfiles에 다음과같이 입력합니다.

 

<supportedProfiles>extendedDesktop desktop</supportedProfiles>


extendedDesktop 은 exe를 만들어 NativeProcess를 사용하기 위한 옵션입니다.
desktop은 air 파일을 생성하기 위한 옵션입니다.
두개의 옵션의 기입 순서를 바꾸면 프로파일이 잘못됬다는 에러가 나면서 패키징이 잘 안될 수도 있습니다.


Step 2 : Air 패키징 파일을 이용하여 EXE 파일 만들기

CMD 프롬프트에서 AIR SDK의 adt.exe 파일 위치로 이동합니다.


이때 리소스로 포함시키는 폴더에 한글이름이 들어간 파일이 있다면 패키징 과정에서 이름이 깨지게 되어 인스톨러가 정상 작동하지 않을 수도 있다습니다. 되도록이면 한글이름을 가진 파일은 사용하지 않는것이 좋을것 같네요.

프롬프트 명령은 다음과 같이 합니다. 자세한 내용은 flex 도움말에 데스크톱 기본 설치 프로그램 패키지화 내용을 참고하세요.

파일 경로명에 한글이 있어도 패키징에 상관 없으나 하이픈(-)과 같은 특수문자는 주의하도록 합니다.

adt -package
    -target native
    [WINDOWS_INSTALLER_SIGNING_OPTIONS]
    installer_file
    air_file

실제 사용 예입니다.

C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0_AIR3.7\bin >_
adt -package -target native -storetype pkcs12 -keystore
"F:\스터디 문서\test\fdesk_1111.p12"
"F:\스터디 문서\test\SWFWhiteOutTool.exe"
"F:\스터디 문서\test\SWFWhiteOutTool.air"

패키징 옵션을 사용할때에는 NativeProcess, ANE, Air 패키징 조건이 다르므로 주의가 필요합니다.


Step 3 : 생성된 exe파일로 인스톨

작업이 완료되면 생성된 exe파일로 인스톨 시킬수 있습니다.


Example : 소스파일로 EXE 파일 만들기

Air 생성파일을 이용하지 않고 바로 패키징 시키고자 하는 경우 다음과 같은 구문을 사용하였습니다.

adt -package AIR_SIGNING_OPTIONS
    -target native
    [WINDOWS_INSTALLER_SIGNING_OPTIONS]
    installer_file
    app_xml
    [file_or_dir | -C dir file_or_dir | -e file dir ...] ...

실제 사용 예입니다.

adt -package -storetype pkcs12 -keystore
"F:\스터디 문서\test\fdesk_1111.p12"
-target native -storetype pkcs12 -keystore
"F:\스터디 문서\test\fdesk_1111.p12"

"F:\스터디 문서\test\SWFWhiteOutTool.exe"
"F:\스터디 문서\test\SWFWhiteOutTool-app.xml"

-C "F:\스터디 문서\test" "SWFWhiteOutTool.swf" "runtimes"

-C 옵션을 사용하면 작업 디렉토리를 바꿀 수가 있습니다. 따라서 이후 작성되는 SWFWhiteOutTool.swf 파일이나 runtimes폴더는 경로를 빼고 짧게 쓸수가 있습니다.