「ひとかじりのりんご」

へっぽこエンジニアの備忘録。こちらは旧ブログ。新しい方はこちら→「http://sbkro.github.io」

ZXingでQRコードを読む方法をまとめてみた。@iOS6/Xcode4.5

iPhoneQRコードを読むためには「ZXing」を使うのがメジャーらしいですが、動作確認が取れるまでに何点か問題があったのでメモ書き。

実行環境

  • XZing 2.1
  • Xcode 4.5.2
  • iOS SDK 6.0
  • iPhone4S

インストール

インストール方法は、以下のサイトが参考になりました。情報はバージョン2.0のものですが、2.1でも違いはありません。

注意点

iOS6/Xcode4.5でZxingを使うためには、2点注意することがあります。

  1. ZXingを利用するクラスの拡張子は「.mm」にすること。
    • ZXingは、C++ベースに作っているため、Objective-CC++を認識させるためにファイルの拡張子を変更する必要があります。ZXingのREADMEによると、この問題を認識しており、その内修正されるかもしれません。
    • もしクラスが既にリポジトリに登録していて、ファイル名を変えたくない場合は、ZXingを呼び出す処理を別クラスに移動させるとよいです。
  2. C++のライブラリを変更すること。
    • iOS6では、上記サイトの通りに設定しても必ずビルドに失敗します。C++ライブラリの設定に問題があるみたいです。
    • プロジェクト→「Build Settings」→「Apple LLVM compiler 4.1 -Language」→「C++ Language Dialect」「C++ Standard Library」を「Compiler Default」に変更してください。
    • 参考 : zxing in xcode 4.5 and ios 6 - Stack Overflow

上の2点を対応したら、無事QRコードリーダーが起動しました。数行でリーダーを起動出来る事と読込スピードもなかなか高速なので、いいライブラリだと思いました。