IOS:將zXing導入到項目中

     最近項目中要用到二維碼掃描,去網上搜了下,決定用zXing,經過2天的奮鬥,終於成功了,過程如下:

  我用的zxingSDK是在網上搜的,已經剪切好的,所以剪切那個步驟就簡單貼出來,

    (1)剪切整合文件

     

ZXing(Github鏡像地址)是一個開源的條碼生成和掃描庫(開源協議爲Apache2.0)。它不但支持衆多的條碼格式,而且有各種語言的實現版本,它支持的語言包括:Java, C++, C#, Objective-C, ActionScript和Ruby。

 

首先去Google Code或Github將ZXing的代碼下載下來,整個工程比較大,我們只需要其中涉及iOS的部分,所以最好做一些裁剪。簡單來說,我們只需要保留cpp和iphone這2個文件夾,其餘的全部刪掉。如下圖所示:

接着我們繼續裁剪,對於cpp這個目錄,只保留cpp/core/src/zxing下面的內容,其餘內容也可以刪掉了。但是整個目錄結構必須保持原樣。裁剪完後,整個目錄結構如下所示:

這個就是我們需要的文件了,接下來,就到把他導入到我們的項目裏了
(2)導入到項目
把裁剪後的zxing目錄整個移動到我們的iOS項目的目錄下,注意,不是通過xcode裏面的addFile這樣的方式的,是直接copy到項目目錄裏面,然後把上圖中可以看到的ZXingWidget.xcodeproj文件拖動到我們的iOS工程中。這一步和容易就完成了。
 (3)在xcode裏面設置
   
1、在我們的iOS項目的設置中,點擊build phases tab,然後增加 Target Dependencies 和 Link binary,增加這些framework依賴:
a. AVFoundation
b. AudioToolbox
c. CoreVideo
d. CoreMedia
e. libiconv
f. AddressBook
g. AddressBookUI

完成之後如下圖所示:


2、在設置中增加如下2個header search path:

./zxing/iphone/ZXingWidget/Classes
./zxing/cpp/core/src

需要注意的是,第一個path要設置成循環查找子目錄,而第二個不循環查找,如下圖所示:



3、在項目裏面,項目-Targets-Build Setting裏面Architectures將Build  Architecture only 設置爲YES.如下


4、在項目裏面,項目-Targets-Build Settings Apple LLVM 6.0 -Language裏面Compile Sources AS設置如下


5、項目-Targets-Build Settings Apple LLVM 6.0 -Language-c++ 設置如下



完成這些後,就可直接使用zXing了

問題:當使用時,程序停在

throw zxing::ReaderException("Could not find three finder patterns");

這一句,剛開始以爲是有些地方設置的不對,後來才發現,因爲加了個全局斷點,取消斷點,OK,正常了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章