kumaryu日記
2006-06-01 直した
_ 2chブラウザ
確かにユニバーサルにした覚えねーな、と思ってユニバーサルにしてみました。標準でUBになってるものと勘違いしてました。
iBookで動かしてみればいいんだけどちょっと面倒なので、とりあえずRosetta経由でちゃんと動いてることを確認しました。
あとdmgが壊れるのも解決したつもり。
いや原因はたぶんテキスト扱いされちゃうのが問題なんだろうと思ったんでapplication/octet-streamに設定してみたけどどうか。
ちょwwwwだめじゃんwwww
しかたないのでやっぱり圧縮しました。
ほんとはちゃんとページ作るつもりだったんだけど、思ったよりUB作るのに手間取ったんで保留。
あとビルドはRubyCocoaの0.4.3d2とXcode 2.3が必要、ということにしておきます。
_ ユニバーサル
ユニバーサルバイナリを作るのに手間取ったんでメモ。
普通にやるならマニュアル通り、SDKをユニバーサルのものにして、アーキテクチャをintelとppcにすれば良い。
で、これでどうも上手くやってくれない。
RubyCocoaで作った場合はちょっと設定が必要らしい。
というか、ターゲットの種類が変なのでCocoa Applicationにしてやれば良いようだ。
- まずターゲットをリネーム。〜_oldとか。
- 新しいターゲットで同じ名前のCocoa Applicationを作る。
- それから古いほうから新しい方に設定とかビルド手順をコピー。
- 設定を確認したら古い方を消してビルドする。
- 出来たのがユニバーサルになってることを確認してOK。
このターゲットがCocoa Applicationじゃないとダメってのが分からなくて苦労したよ。
あとRubyCocoaを使ってる限りは独自の拡張ライブラリを入れてなければ他にいじるところはないから楽だね。
まあpackとかつかってるとエンディアン気にした方がいいかもしんないけど。
と、まあ、そんな感じでした。
_ RubyCocoa
あれれ?
RubyCocoa.framework自体はappのパッケージの中に入ってるからいらないはずなんだけど…。
何か間違ったかと思ったけど、/Library/Frameworks/RubyCocoa.frameworkをリネームしても動いたからやっぱりパッケージの中の奴は使われてるみたい。
otoolコマンドで確認しても大丈夫そうだ。
ということはRubyCocoaと一緒にインストールされる他の何かが必要ってことかな。
あー、もしかしてrubycocoa.bundleが読まれてる? としたら無駄な呼び出しなような気がするけど。
あ、そうだ。/usr/lib/ruby/site_ruby/1.8/powerpc-darwin8.0/rubycocoa.bundleをリネームしたら起動しなくなった。
と思ったら違った。
いや確かにrubycocoa.bundleは読まれてるので厳密には違っちゃいないが、rubycocoa.bundleを読んでる本当の原因はosx/webkit.rbか。
ああ、いやいや、そもそもrubycocoa.bundle以前にosx/webkitが無くて起動しないんだ。
osx/webkit.rbはシステムのsite_ruby下にインストールされるけど、RubyCocoa.framework内にはosx/webkit.rbは無くてosx/objc/webkit.rbしか無いのか。
で、site_ruby下のosx/webkit.rbにはrequire 'rubycocoa'が書かれてるからそこでrubycocoa.bundleが読まれてると。
一番正しいのはフレームワーク内にosx/webkit.rbがあることだな。
まあフレームワークの方をいじるのがめんどければrequire 'osx/objc/webkit'に替えればいいだけか。
すげー罠だな。
俺の場合コマンドラインからRubyCocoaをいじることは無いだろうから、rubycocoa.bundleはリネームしっぱなしにしておいて今後嵌まらないようにしておくか。
というわけでosx/objc/webkitを読むようにしたので、これでRubyCocoaインストールしなくても動くようになったはずだけど。
いちおう上げ直しておきますね。使う人がいたら上のリンクからどうぞ。
なんか公開デバッグで申し訳ない。
でも俺が自分用に作ったものなんで仕方ないよね。と言い訳しておく。
しかし報告してもらえるのはとてもありがたいものだ。