Help us understand the problem. What is going on with this article?

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>
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away