土曜日, 15 10 月 2011

Apple LLVM Compiler…
この記事をクリップ!
このエントリーをはてなブックマークに追加

発売されましたね!iPhone 4S!
みなさんは購入されましたでしょうか?
僕は3GSからの機種変で予約してたんですが、
まだ入荷の連絡がなく触れていません><
早く触ってみたいですねー。

で、iOS 5のリリースにあわせてGalapaBrowserも
iOS 5で動作するようにバージョン1.7をリリースしたんですが、
リリース後に第一世代のiPod touch(3.1.3)で使ってみると、
これが起動しない…。
起動しない理由が分かって修正したんですが、
今度はUIのアニメーションの動作がおかしい…。
コードには問題無いはずで、iOS 4.3.5やiOS 5なら
なにも問題なく動くのにまったく???です。

思い当たる節と言えば、Xcodeを4.2にしたぐらい…。
んで、なんやかんや調べていると4.2からデフォルトの
コンパイラがAppleのLLVMコンパイラになってるんですね。
ということはコンパイラの最適化が悪さしてるのかと思い、
Optimizationのオプションを-O0にしてみると…
これが正解でビルドしてみるとiOS 3.1.3でも正常に動作しました。
よしこれでリリース…ってさすがに最適化無しってワケにはいかないので、
最適化ありの状態でも動作するように、コード側を工夫して1.7.1をリリースしました。

ふぅ、これで一安心と思ってたら、今度はユーザーさんからの問い合わせで
iPhone 3GのiOS 4.2.1で表示がおかしいと連絡が!><
1.7にバージョンアップしたらそうなったとのことなので、
まだApple LLVMの地雷が残ってた模様です…。
確認するために第二世代のiPod touchを中古で購入して、
いざインストール…確かに別なところで表示が狂ってる><
近日中にこの不具合も修正して1.7.2としてリリースする予定ですので、
iPhone 3Gまたは第二世代のiPod touchをご利用の方はしばしお待ち下さい<(_ _)>

なんにしてもXcode 4.2でiOS 5以前のiOSを対応としたアプリを開発するときは
各バージョンの実機で検証する必要がありそうですね。
GCCを使う方法もありますが、GalapaBrowserの場合はこちらも過度に最適化されてしまい
Apple LLVMより致命的な不具合が出てしまったので使用を見送りました。
結局一番良いのはXcodeをバージョンアップしない事じゃないかな!><
Posted by tsujitako at 7:51 午後 in iPhone App/