SSブログ

MailPeeper_menu.appのGmail対応 - OpneSSLライブラリをXcodeから使う2 [プログラミング]

やぁっとリンクが通ってビルド完了まで辿り着いた。リンクしてるくせに、バイナリがないから当然動かない。そして、ライブラリは.appに内包できてない。Contents/framework/ディレクトリ作って、中に.dylibファイル入れたり、Contents/とかContents/MacOSに入れたりしたけど、まともに立ち上がりません。



正攻法として、パスの通っているシステムのディレクトリに、ライブラリ入れちゃおうかな。そもそもの共有ライブラリとしては、そっちの方が普通なのだろうし。あれ、Windowsとかなら検索パスとか普通にわかるねんけど、Macのはわからん。setで環境変数とか見てもなさそうだし、Xcodeの設定とかなのかな。install_name_toolコマンドとかも怪しい。

Xcodeにコンソールってのがあって、エラーはそこで確認できる(エラー出力に限らず標準出力とかも?)らしいが、こういうのは連動してウィンドウが出て来るなりの仕掛けをもうちっと考えて欲しい。デバッグするのにデバッガのウインドウが出てくるとかは普通だと思うんだが、Xcodeは他のIDEを見て開発してないのがミエミエ。Visual Studioとか、Eclipseとかきちんと見て欲しいんだけど、Apple Inc.の開発者は変なところが独自だから嫌だ。少しは良いところをパクれ、さんざ真似されたんだから。



いまいち、otoolとか、install_name_toolとか使い方がよく分からん。
 http://qin.laya.com/tech_coding_help/dylib_linking.html

アプリケーションバンドルの中の、MacOSフォルダの中で

install_name_tool -change libssl.dylib @executable_path/../Frameworks/libssl.dylib MailPeeper_Menu
install_name_tool -change libcrypto.dylib @executable_path/../Frameworks/libcrypto.dylib MailPeeper_Menu

とかやってみるも立ち上がらない。エラーとか出してくれれば良いのに、appをダブルクリックしても無反応で動かないだけ。WindowsとかだったらDLLないよメッセージは普通に出るのに、何この開発者への思いやりのなさ。ユーザーフレンドリーの前に、開発者に友好的じゃないと流行らないよな。やはりAppleは、センス一流、ハード二流、ソフト三流って考えが拭えない。MacOSXだって、結局NeXT Stepの発展系でしかないし。





ライブラリの読み込みを疑ってみたけど、それ以前に自分のインプリが悪い事をしているらしい。Obj-Cはコンパイルは通っても、実行時のエラーとかが多い気がする。それともMacOSXのライブラリが悪いのかな?

MailPeeper_Menu[72845:a0f] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -decodeBoolForKey: only defined for abstract class. Define -[NSUnarchiver decodeBoolForKey:]!'

ってな感じで、表示されてるんだけど、boolな変数を格納するのに暗号化って結果的にどうなってるんだろうね。別にBOOLじゃなくても良いので、intで0か非ゼロで判断する事にして、メンバでBOOLを使っているのは、やめる事にした。インプリするの面倒いな(プログラマの風上にも置けないヤツ)。

すぐに直してコンパイルもかけるも、また実行時にエラーが。コンソールじゃ面倒なので、デバッグウインドウにする。あ、止まった時にアセンブラ出てきて意味がわからん。またコンソール頼りで。直接わかりにくいという点で、同じようなものだけど。コールスタックとか見せられてもなぁ。今度は何だ。

*** Terminating app due to uncaught exception 'NSArchiverArchiveInconsistency', reason: '*** Incorrect archive: unexpected byte'

あ、保存してた設定ファイルの整合性があわんとか、そういうヤツかね。どこだっけ、ファイル。~/Library/Preferences/jp.Dentom.MailPeeper_Menu.plistだったか。以前探しておいて良かった、暇つぶしもたまには役に立つ事もある。んで、情報はどこにあるんかと探してたら、PEEPED_ITEM_Ver1に暗号化されてゾロゾロと入っていた。こんだけの長い文字列になっていれば、元の情報はわからないな。

とりあえず、どこかにこのファイルは置いておいて、.plistを元のディレクトリから消す。暗号化する中に突っ込むと、データが増えたら使えなくなるってのはわかってるけど、とりあえずいいや。あ、動いた。エラーでないけど、いいの?これで? 立ち上げ実行時にライブラリは見に行かないのかな? Obj-Cのコンパイル後のリンクの挙動とかわかんないな。普通にgccでコンパイルしているので、普通のバイナリと同じはずなんだけど。まぁMacの根本のところはFreeBSDなんだろうけどよく分からん。


あーGUIとの連携の部分、全くやってないな。Interface Builderとかも重そうで後回しにしておいたんだけど、やらなきゃダメか…。腰を上げればすぐにできる気がするが、メモリがなくてメモリ消費的に重たい処理させるのが痛ましい(そればっか)。

タグ:freesoft
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。