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 も含めて自分でビルドして組み込んでみたのでメモ。