CorePlotをUniversal Binaryでビルドする

ただ、これだと実機では動くけどシミュレータでは動かない。なぜなら i386 用のコードが入っていないから。
というわけで、そこも一緒に入れてくれるのが Universal Library scheme


scheme で Universal Library を選択してビルドすると、armv7s, armv7, i386 全てのコードを入れたライブラリを作ってくれる。

(実際には実機とシミュレータ用のライブラリを Release build で作って lipo でくっ付けてる。)


出来上がったファイルを file コマンドで見てみるとこんな感じ。

iMac-i3-27:Release-universal paraches$ file ./libCorePlot-CocoaTouch.a 
./libCorePlot-CocoaTouch.a: Mach-O universal binary with 3 architectures
./libCorePlot-CocoaTouch.a (for architecture armv7):	current ar archive random library
./libCorePlot-CocoaTouch.a (for architecture cputype (12) cpusubtype (11)):	current ar archive random library
./libCorePlot-CocoaTouch.a (for architecture i386):	current ar archive random library
iMac-i3-27:Release-universal paraches$ 

armv7 と i386 はちゃんと表示されるんだけど、armv7sって cputype (12) cpusubtype (11)ってことで良いのかな?


というわけで、Xcode 4.5 がリリースされたので各ライブラリも直ぐに armv7s 対応してアップデートされると思うけど、それを待てない!って場合は自分でライブラリをビルドしてみるのも面白いんじゃないかな?