Delphiで作ったMacアプリケーションの配布(バンドル .app化)

Delphi XE4 ヘッダ

Delphi XE4でMacアプリケーションづくりを楽しんでいる太田アベルです。

 

前回の記事でDelphiからMacソフトを手軽にデバッグする手順を紹介しました。

PAServerというDelphi付属のソフトを使えば、MacとWindowsでファイルをコピーしたりしなくても、すぐに実行・デバッグできて便利です。

今日はDelphiでMacアプリケーションを作ったあと、どうやってアプリケーションとして配布するのかを紹介します。

バンドルとは

Macのアプリケーションは通称「バンドル」と呼ばれるパッケージにされています。

/Applicationの中を見ていただけると分かりますが、「.app」の拡張子が付いているものがズラリと並びます。これらがバンドルです。

Macアプリケーションフォルダ

 

.appはユーザーからはソフト単体のように見えていますが、正体はアプリケーションの実行ファイル、設定、アイコンなどを収めたフォルダです。

試しに「メモ.app」を右クリックし、「パッケージの内容を表示」を選択すると、フォルダ構造として内容を見ることができます

メモ.appのバンドル

 

バンドルにすることで手軽にアプリケーションを配布できるようになります。

Delphiのファイルからバンドルを作る

このバンドルはDelphi XE4ならカンタンに出力できます。

さっそくDelphiのOS Xアプリケーションをバンドル化してみましょう。

ちょっと捕捉

実はこの作業はXE2までは実行用の.dylibをコピーしたり、自分でフォルダにバンドルの構成をつくったりしなければなりませんでした。

一応基本となるバンドルの構造を書いておきます。今回はこういう構造なんだと気に留めておくぐらいで十分です。
(自分的には1年前にかなり悩んだので・・・)

 

root
  --[Contents]
    --Info.plist (ビルド時に出力される[プロジェクト名.info.plistの名前を変更)
    --[MacOS]
      --{実行ファイル} (Project1など。拡張子はなし)
      --{必要な.dylib}(libcgunwind.1.0.dylibなど)
      --[Resources]
        --アイコンファイル(.icnや.icnsなど)

 

これが基本のバンドル構成です。

手動でこの通りに作ってもOKですが、libcgunwind.1.0.dylibなど、必要とされる.dylib(Windowsで言うdll)の確認と収集はかなり手間取ります

で、XE4は次の方法がオススメというか標準。

PAServerから出力

前回の記事にしたPAServerを使えば、なんとこれを一瞬で行えます

実行するPAServerを起動し、実行します。

そしてすぐアプリケーションを終了します。

コマンド[s]

PAServerのターミナルで s を入力します。

スクラッチディレクトリを出力する」というコマンドになります。

スクラッチディレクトリを出力する

このコマンドを実行すると、ユーザーフォルダに RADPAServer というフォルダが作られ、そこに作成したアプリケーションバンドルが放り込まれます。

これだけ!

たった s コマンド一つでもう配布できるアプリケーションが完成しました!

アウトプットされたバンドル

 

このバンドルは単体で動くようになっていますので、配布もカンタン!

すばらしいですね!

まとめ

今回もDelphiのすばらしいマルチプラットフォーム機能を紹介しました。

なかなか手間取るアプリケーションバンドルですが、XE4ならPAServer任せでOK。あっけないほどカンタンにOS Xアプリケーションを出力できてしまいます。

生産的なDelphiプログラムに集中することができますね!

 

ということで前回に引き続き、

マルチプラットフォームのアプリケーション開発者は、Delphiを学んでおけばオトクですよ!

とまとめておきます。