
Mac OS Xでは、アプリケーションはバンドルにするのが原則となります。PowerMopsはいわゆるCFM/PEF形式を使っていますから、古典的なリソースフォークをつかったアプリケーションをつくることができます。バンドルの方がリソースフォークよりも進んだ優れた技術であるとは一概には言えませんが、いかんせん、Macintoshはこの方向に移行し出してしまい、Mach-O形式のアプリケーションでは、実行可能ファイルにリソースフォークを貼付けて起動時にロードすることはできません。また、CFM/PEFファイルでも、リソースフォークによるFinder情報の設定には、若干の不備(ひょっとして、意図的なバグ?)があるようです。バンドル方式も、アプリケーションが巨大なリソースを持つような場合には、長所があるといえます。また、他言語に対応できるというのも(多分最大の)バンドルの長所です(もっとも、この機構を使うには自分でシステムコールによるライブラリを書く必要があるでしょう。まあ、C++とかでもそうですけど。)。
よく誤解されているようですが、CFM/PEF実行ファイルを使ってMac OS X用のアプリケーションバンドルをつくることができないわけではありません。CFM/PEFではバンドルなし、リソースフォーク付きのアプリケーション"も"つくれる、というだけです。また、Mac OS X用とMac OS 9用の二つの実行ファイルをバンドルにした時にはMac OS 9用のアプリケーションはCFM/PEFにしてClassicの内部フォルダに入れますが、CFM/PEF実行ファイルはClassicにしなければならないわけではありません。それどころか、Mac OS 9でもMac OS Xでも起動できる実行ファイルなら、特別に二つ実行ファイルをつくることなく、両方で起動させることができます。また、バンドルにした場合も、CFM/PEF実行ファイルなら、従来通りリソースフォークを貼付けて利用することができます。
XCodeなどの開発環境がアプリケーションパンドルをどうやってつくってくれるのか詳しいことは知りません。Plistエディターは便利ですが、他のツールは使ったことがありません。Appleはアプリケーションバンドルは自分で(manually)容易につくることができますと書いていますが、手順を一歩一歩解説してくれてはいません。「できますが、」ときて、「ツールを使えばずっと楽」とか流れて、あとはツールのススメになってしまいます(T_T)。まあ、必要な条件は、じつはみんな書いてあるんですが、どこからどこまでが、ないといけないのか、がわからないわけです。ですから、このバンドルの作り方は、私個人の試行錯誤の結果を述べたものです。結果的には、Info.plistというXMLファイルをつくるところがちょっと厄介ですが、あとは大したことありません。多分、いずれ、必要項目を適当に付け足せばいいようなInfo.plistひな形を提供できると思います。
そこで、PowerMopsでスタンドアローンにしたアプリケーションを自分の手でバンドルにする方法を、実際の経験に基づき、いくつかのページにわけて説明してみたいと思います。OS XでもOS 9でもできます。
もう少し、一般的な話を続けます。Mac OS XではInfo.plistファイルをつくるのに、Plistエディタを使うと少し便利です。これは、開発環境(XCode)についてきます。開発環境をインストールするのが嫌な人は、UTF-8のユニコードを使って、テキストエディットとかでXML文書をつくることになります。いずれにせよ、設定すべき項目の名前などは、結構長たらしくて、憶えるのは無理かと思いますが、Appleのサイトにあるテクニカルノートを参考にしてかけば何とかなります。実をいうと、Mac OS 9向けにバンドルつくる方がうんと楽です。しかも、OS Xで起動できるようにすることもできるようです。まあ、ファインダアイコンの問題があるんですが。(ファインダアイコンはMac OS 9では32ビット正方形が前提ですが、Mac OS Xでは128ビット正方形が前提となります。32ビットのアイコンをMac OS X上で情報ウィンドウから貼付けると、128ビットに拡大して貼付けます。この前提の違いのせいで、Mac OS 9の情報ウィンドウから貼付けたファインダアイコンは、Mac OS X上では米粒のように縮んでしまいます。)
次回は、Mac OS 9上でバンドルをつくってみます(引っ張ってすみません。結構いっぱい説明事項はあるんですよ。つくる作業自体は大したことないんですがねえ。)。Mac OS Xじゃないとバンドルにする意味はないんですが、なんでMac OS 9から始めるかというと、上でも述べたように、こっちの方が楽だからです。これにMac OS X用の情報を付け足せば、両用バンドルができます。PowerMopsではいずれにせよPEFのCarbonアプリケーションですから、一つで済むことも多いでしょう。Mac OS 9で起動できない人は、一回とびます。とりあえずclassic環境とResEditがあれば、何とかなります。というかResEditもなくても何とかなりますが、かなり手間がかかります。この話は、Mopsの概説ではなくなっちゃいますね。すみません。