IOS:将zXing导入到项目中

来源:互联网 发布:程序员有哪些方向 编辑:程序博客网 时间:2024/04/27 22:30

     最近项目中要用到二维码扫描,去网上搜了下,决定用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,正常了

0 0
原创粉丝点击