Snow Leopardでは、プラグインを利用したアプリケーションの拡張性に大きな変化が生じている。その1つが、アプリケーションの多くが64bitをデフォルトの動作モードとしていること。たとえば、以前『OS X ハッキング! 第304回 OS標準ハック仕様? の「SIMBL」を知る』で紹介したSIMBLは、32bitバイナリ(i386/PPC)しか収録されていないため、64bitモードのアプリケーションでは動作しない。SafariStandなどのプラグインや、MegazoomerなどCocoaアプリ汎用のプラグインが動作しないのは、それが原因だ。

「32ビットモードで開く」をチェックすれば、SIMBLプラグインはとりあえず動作するはず

とりあえずSIMBLを動作させたい場合には、アプリケーションを32bitモードで起動すればいい。設定は簡単、アプリケーションの情報ウインドウで[32ビットモードで開く]をチェックしてから起動すればOK。これで、アプリケーションとSIMBL本体、SIMBLプラグインの一式が32bitモードで実行されるため、Leopardのときと変わらず動作するはずだ(すべてのSIMBLプラグインを試したわけではないので念のため)。

なお、canberland氏により、SIMBL本体の64bit対応暫定版(SafariSIMBL/SIMBL for Safari 64bit)が9月1日付けで公開された。具体的なインストール方法はWebサイト上の説明を参照いただくとして、SIMBLプラグイン側も64bit対応していなければならないことに要注意。ソースコードが公開されていれば自力でビルドしてもいいが、そうでなければ開発者の対応待ちとなることだろう。

なぜSafariで32bitプラグインが動作するのか

上述した対処策は、SIMBLプラグインにかぎった話。たとえば、SilverlightやFlashなどのSafari向けプラグイン(/Library/Internet Plug-Insまたは~/Library/Internet Plug-Insディレクトリに保存される)は、Safariが64bitモード時でも動作する。この事態に混乱気味の読者も少なくないことだろう。

その理由は、Snow Leopard向けにビルドされたSafari 4では、Safari本体とプラグインが別プロセスで動作するということ。たとえば、SafariでSilverlight 3(プラグインは32bitバイナリ)のコンテンツを表示しているとき、アクティビティモニタで確認すればわかるが、Safariは64bitモードで、Silverlightは32bitモードで動作しているはず。Cocoaアプリ汎用のSIMBLはプラグインを読み込む方法が異なるため、アプリケーション本体の動作モードに左右されるというわけだ。

アクティビティモニタで確認したところ、Safari本体とSilverlightプラグインのプロセスは分かれていた