iOS – ZBarライブラリのiPhone5対応

バーコード、QRコード読取りでよく使われるライブラリに「ZBar」があります。

 

問題

このZBarライブラリですが、iPhone5で動かそうとすると問題が発生します。配布されているZBarのlibzbar.aarmv7sアーキテクチャを前提にコンパイルされていないため、iPhone5用にアプリをコンパルする際にリンクエラーが発生してしまいます。

リンクエラーの場合、以下のようなエラーメッセージが出力されるはずです。
ld: file is universal (3 slices) but does not contain a(n) armv7s slice: .../libzbar.a for architecture armv7s

 

解決方法

さてどうしたものかと思い、ネットの海をさまよっていたところ、ZBarライブラリをソースコードからコンパイルしてarmv7sに対応したlibzbar.aを作成するという解決方法がありました。

しかしながら、調べてみるとソースコードからのコンパイルもいろいろと難しそうなので、armv7sに対応したコンパイル済みのものがないかと探したところ、ありました。
http://sourceforge.net/p/zbar/discussion/1072195/thread/ba2844b5

コンパイル済みのZBarはこちらから:http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/

 

上記のWebページから「ZBarSDK-1.3.1.dmg」をダウンロードして古いZBarと置き換えたところ、無事iPhone5でも動作しました。

 

環境

XCode 4.6