Linuxで動作するデスクトップアプリをAdobe AIRで作る(Ubuntuの場合)


はじめに

UbuntuでHello Worldを表示するデスクトップアプリを作成します。
また、パッケージングするところまでの手順を書きます。
IDEは利用せずに、コマンドでコンパイル等を行います。
Wineを利用してAdobe AIRを動作させます。

アプリの完成イメージ

試した環境/バージョン

Ubuntu 20.04
Apache Flex 4.16.1
Adobe AIR 32

事前準備

winetricksでAdobe AIRをインストールしておく

$ winetricks adobeair

環境作成

Apache Flex SDKとAdobe AIR SDKのダウンロード

以下から、Linux用のapache-flex-sdk-4.16.1-bin.tar.gzをダウンロード
http://flex.apache.org/download-binaries.html

以下から、Windows用のAdobeAIRSDK.zipをダウンロード
https://www.adobe.com/devnet/air/air-sdk-download.html
 ※青色のダウンロードボタンではなく、以下のリンクからダウンロードする
  Note: Flex users will need to download the original AIR SDK without the new compiler.
   Download Mac | Download Windows

解凍してマージ

マージするためのフォルダーを作成
(今回はホームにFlex4.16.1_AIR32という名前のフォルダーを作成)

apache-flex-sdk-4.16.1-bin.tar.gzを解凍した中身を上記のフォルダーに配置

その後、AdobeAIRSDK.zipを解凍した中身を上書きで上記のフォルダーに配置

環境変数の設定

$ export AIR_HOME=~/Flex4.16.1_AIR32
$ export PATH="$AIR_HOME/bin:$PATH"

確認

以下のコマンドが利用できるようになったことを確認する

$ amxmlc -version
Version 4.16.1 build 20171115

アプリの作成、実行

mxmlの作成

Main.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="400" height="300" fontFamily="Meiryo">

    <fx:Script>
        <![CDATA[

            import mx.controls.Alert;

            /**
             * アラートを表示する処理
             */
            private function showMessage():void {

                // アラートを表示
                Alert.show('Hello World');
            }

        ]]>
    </fx:Script>

    <!-- ラベル -->
    <s:Label left="10" top="10" text="Click the button."/>

    <!-- ボタン -->
    <s:Button left="10" top="40" label="Click Me" 
        click="showMessage();" />

</s:WindowedApplication>

コンパイル

以下を実行するとMain.swfが作成される

$ amxmlc Main.mxml

application.xmlの作成

application.xml
<?xml version="1.0" encoding="utf-8" ?>
<application xmlns="http://ns.adobe.com/air/application/32.0">
    <id>MyApplication</id>
    <versionNumber>1.0</versionNumber>
    <filename>MyApplication</filename>
    <initialWindow>
        <content>Main.swf</content>
    </initialWindow>
</application>

アプリの実行

以下を実行するとデスクトップアプリが起動する

$ wine ~/Flex4.16.1_AIR32/bin/adl.exe application.xml

パッケージング

証明書の作成

以下を実行
※最初に作成するときの1回のみ実行する

$ java -jar ~/Flex4.16.1_AIR32/lib/adt.jar -certificate -cn "TestCert" 2048-RSA "TestCert.p12" pass

TestCert.p12が作成される

パッケージング

以下を実行

$ java -jar ~/Flex4.16.1_AIR32/lib/adt.jar -package -tsa none -storetype pkcs12 -keystore "TestCert.p12" -storepass pass MyApplication.air application.xml Main.swf

MyApplication.airが作成される

このMyApplication.airを右クリックして、Adobe AIR Application Installerで開くことで作成したアプリをインストールすることができる

とりあえず今回はここまで