iOS 6 対応の為に CorePlot を armv7s 対応してビルドする

iOS 6 対応しようと思い、Xcode 4.5 を使って CorePlot を使ったアプリケーションをビルドしようとしたらリンカでエラーが出た…。

ld: file is universal (2 slices) but does not contain a(n) armv7s slice: /Users/.../CorePlot/libCorePlot-CocoaTouch.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

armv7s 用のコードが入ってないって…。


Xcode 4.5 から出てきた新しいアーキテクチャの armv7s 用のコードは、Xcode 4.5 がリリースされる前に出ていた CorePlot のライブラリに入っている筈もなくリンクできなくてエラーになっちゃう…。
(これ、シミュレータで動作確認してる時は出ない。CorePlotのライブラリには既に i386 のコードは入ってるから。)


たぶん、一番簡単な対処方法はアプリケーションビルド時の「Valid Architectures」から「armv7s」を削除しちゃえば良い。

でも、それだと armv7s でのパフォーマンスが若干落ちる(んじゃないか)と思うので、なんだか悔しい。


というわけで、今回は CorePlot のライブラリを armv7s も含めて自分でビルドして組み込んでみたのでメモ。