ZXingWidgetをXcodeプロジェクトに取り込む

zxing - Multi-format 1D/2D barcode image processing library with clients for Android, Java - Google Project Hosting
Androidプラットホームではあまりに有名なバーコード読み取りアプリケーションとそれを構成するライブラリィでお世話になっている人も多い、ZXing("Zebra Crossing")の1D/2Dバーコード処理ライブラリィだが、iPhoneでも同様にアプリケーションやライブラリィを開発することができる。

ただし、Androidのようにインストール済みのアプリケーションとIntentで通信したりActivityのように1クラスで構成できるのと違って、iOSの場合はスタティックライブラリィとしてアプリケーションに取り込む必要があるため、ちょっとした手間と手順が必要になる。

Xcodeで開発中のアプリケーションプロジェクトにZXingWidgetを組み込む手順

ZXingプロジェクトリポジトリのチェックアウト

色々な方法があるのだが、せっかくなのでXcode4にパッケージされているOrganizer(オーガナイザー)を使おう。
OrganaizerではデフォルトでgitとSubversionリポジトリとして使うことができる。今回、ZXingではSubversionを使う。

1.Xcode->Window->Organizerでオーガナイザを起動する。

2.左下の「+」から"Add Repository"で、URL"http://zxing.googlecode.com/svn/trunk/"を入力してリポジトリの種類を"SubVersion"に設定する(一度接続した場合は自動的に判別される)

3.プレースホルダ"ROOT"を選択して"Checkout"を押下して、その後チェックアウト先のローカルディレクトリ名を入力する

以上でリポジトリソースコードがローカルディレクトリ上にコピーされているはずだ。

iOSアプリケーションにバーコードリーダの機能を統合するだけならプロジェクトツリー中のサブプロジェクト"ZXingWidget"だけで良いのだが、"ZXingWidget"は内部で他のプロジェクトのソースコードやヘッダファイルを参照しているので、素性が判らないうちは全てのプロジェクトをチェックアウトしておくのが確実だろう。

ZXingWidgetプロジェクトをXcodeに取り込む

予めアプリケーションプロジェクトを作っておき、そこに以前の日記で書いたように外部ライブラリィプロジェクトとして組み込む。

1. ZXingWidget.xcodeprojをアプリケーションに追加する(メニューからファイル追加、又はFinderからドラッグ&ドロップ)

2. プロジェクトのBuild Phase設定で"Target Dependencies"にプロジェクト"ZXingWiget"を追加する

3. プロジェクトのBuild Phase設定で"Link Binary Libraries"にスタティックライブラリィ"ZXingWiget.a"を追加する

4. 同様に"Link Binary Libraries"にZXing側が使用する以下のフレームワークXcodeから追加する

    • AddressBook
    • AddressBookUI
    • AudioToolbox
    • AVFoundation
    • CoreMedia
    • CoreVideo
    • libiconv.dylib

5.コード検索パスを追加する
一部のソースコードやヘッダファイルはZXingWidgetプロジェクトの外に配置されているので、BuildSettingのHeader Search Pathに以下のパスを追加する必要がある

[ZXingプロジェクトをチェックアウトしたディレクトリ]//cpp/core/src/
[ZXingプロジェクトをチェックアウトしたディレクトリ]/zxing/iphone/ZXingWidget/Classes

以上でZXingWidgetを組み込んだアプリケーションのビルドが成功するはずだ。
ここまでの作業が出来れば、ZXingの他のiOS用のプロジェクトを開いてビルドすることも出来るだろう。

参考にしたサイト:
zxing.googlecode.com/svn/trunk/iphone/README