Edited at

AntによるAIRアプリケーションのパッケージ生成

More than 5 years have passed since last update.


目的

この記事に書いてあるのは、AIRアプリケーションのインストールパッケージ(.air)を ant で生成する部分。

最終目的は、Jenkinsでインストールパッケージを 定期的に or オンデマンドで生成すること。


概要

Flex SDK同梱のFlexTasksを用いて、Antでmxmlおよびasをswfファイルにコンパイルし、

Antからadtコマンドを叩いて インストールパッケージ(.airファイル)を出力する。


環境


  • Mac OS X 10.7.5

  • Flex SDK 4.1.0

  • Ant 1.8.2


関連ファイルの内容


antによるビルド

buildターゲットでswfファイルを作成し、build_airターゲットで.airインストールパッケージを出力する。

後者はadtコマンドを実行する処理をAntで書いているだけ。

参考.

ADT package コマンド

ADT コード署名のオプション


swf作成用のAntタスクについて

flexTasks.jarをわざわざbuild_libに配置しているが、

{SDKインストールディレクトリ}/ant/libに配置されている。


AIR証明書について

事前に下記コマンドにて作成している前提。


証明書生成

adt -certificate -cn nt67 -ou org -o "nt67 .org" -c JP 2048-RSA air_key_store.p12 testpass



antファイル本体


build.xml


<?xml version="1.0" encoding="utf-8"?>
<project name="air project" basedir="." default="build_air">
<property name="FLEX_HOME" value="/Applications/Adobe Flash Builder 4 Plug-in/sdks/4.1.0"/>
<property name="flex_bin" value="${FLEX_HOME}/bin" />
<property name="output.file" value="project" />
<property name="APP_ROOT" value="." />
<taskdef resource="flexTasks.tasks" classpath="${basedir}/build_lib/flexTasks.jar" />

<target name="build" description="build swf">
<mxmlc file="${APP_ROOT}/project.mxml"
keep-generated-actionscript="true"
debug="false"
optimize="true"
configname="air"
output="${output.file}.swf">
<load-config filename="${FLEX_HOME}/frameworks/air-config.xml"/>
<source-path path-element="${FLEX_HOME}/frameworks"/>
</mxmlc>
</target>

<target name="build_air" description="Create the AIR package">
<exec executable="${FLEX_HOME}/bin/adt" failonerror="true">
<arg line="-package" />
<!-- AIR SIGNING OPTIONS -->
<!-- adt -certificate -cn nt67 -ou org -o "nt67 .org" -c JP 2048-RSA air_key_store.p12 testpass-->
<arg line="-storetype pkcs12" />
<arg line="-keystore ${basedir}/air_key_store.p12" />
<arg line="-storepass testpass" />
<arg line="-keypass testpass" />

<!-- Output format -->
<arg line="-target air" />

<arg line="${output.file}.air" />
<arg line="application.xml" />
<arg line="-C . ${output.file}.swf" />
</exec>
</target>
</project>



アプリケーションディスクリプタの設定

xmlnsのバージョンは AIRランタイムバージョンに依存する部分。

対応を確認すること。

AIR アプリケーション記述エレメント


application.xml

<?xml version="1.0" encoding="utf-8" ?> 

<application xmlns="http://ns.adobe.com/air/application/2.0">
<id>org.nt67</id>
<version>0.0.1</version>
<filename>test_project</filename>
<name>Test Project</name>
<description>
<text xml:lang="en">This is an example.</text>
<text xml:lang="ja">てすと.</text>
<text xml:lang="es">Esto es un ejemplo.</text>
</description>
<copyright>Copyright (c) 2013 nt67</copyright>
<initialWindow>
<title>Hello World</title>
<content>project.swf</content>
</initialWindow>
</application>