きりかノート 3冊め

おあそびプログラミング

Safari3 の WebKit のインストールについての改善案を勝手に考える

あんまし興味ないので Safari 3 はインストールしていないのだけれど、耳にした情報ではシステムの Webkit.framework を置き換えてしまうようだ(インストーラだけダウンロードして lsbom で確認)。rubycocoa-talk でも、Safari3 をインストールした状況でビルドがうまくいかないという報告がきていた

新しい WebKit て、現在の Tiger のものと互換だっていうモノだったのだっけ?そうでなければ、こういった問題を回避する方法はあるよね。

その1、アプリケーションにフレームワークを入れる

MacOS X では、システム共通のフレームワーク(/System/Library/Frameworks, /Library/Frameworks)として以外にも、アプリケーションバンドル内にフレームワークを置くこともできる。そうすれば、他のアプリケーションに影響を与えることなく、Safari3 では新しい WebKit を利用することができるようになる。

 Safari.app/
Contents/
MacOS/Safari
Frameworks/WebKit.framework/...

その2、フレームワーク内に複数バージョンを入れる

もしくは、フレームワークバンドルには複数バージョンを入れることができるから、それを利用すればよい。ただ、フレームワークのバージョンをちゃんと利用しているのって見た記憶がほとんどない。ちょっと扱い難いのだよね、これ。

 /System/Library/Frameworks/WebKit.framework/
Headers # Versions/Current/Headers へのシンボリックリンク
Resources # Versions/Current/Resources へのシンボリックリンク
WebKit # Versions/Current/WebKit へのシンボリックリンク
Versions/
A/ # 今のWebKit
B/ # Safari3用のWebKit
Current/ # -> A へのシンボリックリンクのまま