NNDDをタダでコンパイルしてインストーラを作る

はじめに

Ubuntu 10.10でNNDD v2のインストーラを作ってみます。
NNDDはAdobe Flash Builderを使って作っているので、Flash Builderがあればコンパイルインストーラ作成も簡単なのですが・・・残念ながらFlash BuilderのLinux版はありません。(あとFlash Builderは結構いい値段します。)
ですが、コンパイラ部分はタダで手に入ります。コンパイラ部分はLinuxでも動きます。なので、タダで手に入る物だけでなんとかNNDDをコンパイルして、インストーラを作ってみましょう。

では、以下のページを参考に、準備をしていきます。
AIR SDKとFLEX SDKではじめてのAIRアプリケーションを作る - Churadesign

もちろん、Ubuntu 10.10以外でも(WindowsでもMacでも)、SDKを準備すれば実行できるはずです。

Flex SDKAIR SDKを使えるようにする

Javaを入れておきましょう

Flex SDKAIR SDKを動かすのにはJavaが必要です。
UbuntuだとパッケージマネージャからOpen JDKがインストールできますが、まあやっぱりSun Javaだよね!ってことで下記ページを参考にJavaをインストールしておきましょう。

Ubuntu 10.04 で sun-java-6 をインストール - YoshioriのBlog

Flex SDKAIR SDK

まず、Flex SDKAIR SDKをダウンロードします。

ダウンロードしたら好きな場所に展開し、それぞれのbinにPATHを通します。

.bash_profileを編集するならこんな感じに追加。

export FLEX_HOME='/home/shiraminekeisuke/opt/flexsdk'
export AIR_HOME='/home/shiraminekeisuke/opt/airsdk'
export PATH=$PATH:$FLEX_HOME/bin:$FLEX_HOME/player/debug
export PATH=$PATH:$AIR_HOME/bin

whichコマンドで場所を確認します。

$ which amxmlc
/home/shiraminekeisuke/opt/flexsdk/bin/amxmlc

実行ファイルの場所が確認できれば次のステップへ。

NNDDのソースコードを持ってくる

NNDDの最新のソースコードSubversionで管理されています。SorceForge.JPの以下のページに従って、Subversionを準備すればソースコードを取得できます。
http://sourceforge.jp/projects/nndd/svn/view/


今回使うのは、ソースコードそのものである

/NNDDv2/trunk/src/

の下にあるファイル群と、一緒に使うライブラリ

/NNDDv2/trunk/libs/nicovideo4as.swc

です。

Subversionが無い人は・・・なんとかして環境を作ってください(汗 (私はEclipseプラグインSubclipseを使っています。)

Subversionとかめんどくさいという方は、ここからNNDD v2の最新のソースがダウンロードできます。

NNDDをコンパイルする

amxmlcコマンドを使ってNNDDをコンパイルします。

$ amxmlc -library-path+=../libs/nicovideo4as.swc,../libs/NativeApplicationUpdater-0.5.1.swc -warnings=false NNDD.mxml

コマンド中の-library-pathオプションはライブラリを指定するオプションです。これで外部のライブラリであるnicovideo4as.swcとNativeApplicationUpdater-0.5.1.swcを追加しています。また、-warnings=falseでコンパイル時の警告を無視するように設定しています。

上記コンパイルが終われば、NNDD.swfが生成されます。

$ ls NNDD.swf
NNDD.swf

NNDD.swfが生成されない場合は -warningsオプションを外してコンパイルエラーが出ていないかどうか確認してください。

AIRパッケージを作る

NNDDのインストーラパッケージ(.airファイル)を作ります。

設定ファイルを修正

AIRアプリケーション記述ファイル(NNDD-app.xml)を編集します。
NNDD-app.xmlの44行目(あたり)に記述されている、

<content>[この値は Flex Builder の出力ファイル app.xml に上書きされます]</content>

を、以下のように書き換えます。

<content>NNDD.swf</content>

これで保存しましょう。

自己証明書を作る

次に自己証明書を作ります。最初に紹介した記事でも説明されていますので、書いてあるまま実行しましょう。

$adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword

上記コマンドを実行するとsampleCert.pfxという証明書が生成されます。これでインストーラを作る準備が整いました。

インストーラを作る

インストーラを作るには以下のコマンドを実行します。

$adt -package -storetype pkcs12 -keystore sampleCert.pfx NNDDv200b.air NNDD-app.xml NNDD.swf icon16.png icon32.png icon48.png icon128.png

上記コマンドを実行するとパスワードの入力を要求されるので、自己証明書を生成したときに入力したパスワードを入力します。
コマンドが完了すると、NNDDv200b.airという名前のAIRインストーラパッケージが生成されているはずです。

$ ls NNDDv200b.air
NNDDv200b.air

後は、出来たAIRインストーラパッケージをダブルクリックすればインストーラが立ち上がり、インストールする事ができます。

ネイティブインストーラはどうやって作るのか?

ネイティブインストーラは-target nativeオプションを使うと作れるらしいです。
が、Ubuntuでやってみたところうまくいかず。

$ adt -package -storetype pkcs12 -keystore ../nnddCret.p12 -target native NNDDv200b.deb NNDDv200b.air NNDD-app.xml NNDD.swf icon16.png icon32.png icon48.png icon128.png
password: 
/home/shiraminekeisuke/work/NNDDv2/src/NNDDv200b.air: error 100: Descriptor cannot be parsed

これが一番やりたかった事なんですけど!

Linuxのネイティブインストーラはまだサポートされてないんですかね?

今後の展望

最後まで書いてから気付きましたが、これってSourceForge.JPのNNDDのプロジェクトページのWikiに載せた方がいいですよね。
後でやる。

最後に

MacBook Air 11インチ欲しい!
MacBook Air持ち歩いてニヤニヤしたい。