ios上ZXing库的配置流程

本文转载至 http://blog.csdn.net/louercab/article/details/26448587

步骤

首先,用Xcode创建我们的demo,
取名TestZXing(根据自己的喜好随便取)。找到项目的位置,打开文件夹,在里面创建一个文件夹取名zxing, 如图:

然后从https://github.com/zxing/zxing上把zxing下载下来。解压打开。由于zxing支持多个平台,而我们只需要支持ios的就行,所以我们只需要保留两个文件夹(cpp和iphone)即可,把两个文件夹复制出来,放到第一步创建的zxing的文件夹下面。如图:

接着我们接续把不需要的文件给删了。对于cpp/core/src文件夹下面的东西,我们只保留bigint和zxing两个文件夹。

对于iphone文件夹,我们需要删除iphone/ZXingWidget目录下面的Tests文件夹。删除后如图:

接下来打开我们的demo,把zxing目录添加到我们的ios项目中,然后把iphone/ZXingWidget下面的ZXingWidget.xcodeproj文件拖到和zxing同级目录。(如果发现有tests文件夹,就把tests文件夹删掉)如图:

然后在项目中面板中点击build phases tab,然后增加 Target Dependencies 和 Link
binary,并且增加这些framework依赖,添加后如图:

在设置中增加两个header search path ,需要注意的是,第一个path要设置成循环超找字幕了,而第二个不循环查找,如下图所示:

到这一步,我们就把ZXing库给集成好了。这个时候编译一下,看是否报错。很可惜,的确会报错,错误类型为:

这时,我们找到有错误的那行代码,双击代码左边的红圆点,会弹出如下图提示:

然后双击第二行(带蓝色底的那行),这时发现错误神奇的消失了。

在我们的类加入zxing的依赖关系。

#import <ZXingWidgetController.h>

#import <QRCodeReader.h>

这个是我们画的界面:

在.m中我们这样写:





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

-
(IBAction)zxingAction:(id)sender {

    ZXingWidgetController
*widController = [[ZXingWidgetController alloc] initWithDelegate:self
showCancel:YES OneDMode:NO];

    NSMutableSet
*readers = [[NSMutableSet alloc ] init];

    QRCodeReader*
qrcodeReader = [[QRCodeReader alloc] init];

    [readers
addObject:qrcodeReader];

    [qrcodeReader
release];

    widController.readers
= readers;

    [readers
release];

    [self
presentViewController:widController animated:YES
completion:nil];

    [widController
release];

}

-
(
void)zxingController:(ZXingWidgetController*)controller
didScanResult:(NSString *)result

{

    self.showTextView.text
= result;

    [controller
dismissViewControllerAnimated:YES completion:nil];

}

-
(
void)zxingControllerDidCancel:(ZXingWidgetController
*)controller

{

    [controller
dismissViewControllerAnimated:YES completion:nil];

}

这个时候编译一下,会报‘iosstream‘ file not found
错误,这时我们需要把.m文件改为.mm文件,和调用这个类的.m文件,改为.mm文件。详细请参考:http://stackoverflow.com/questions/8154024/iostream-file-not-found-in-xcode-4-2

修改后如图:

因为我在SSViewController的头文件中引入了

#import <ZXingWidgetController.h>

#import <QRCodeReader.h>

而且在SSViewController.m中使用了ZXingWidgetController,而ZXingWidgetController里面有C++代码,所以需要把SSViewController的后缀变为.mm。因为SSAppDelegate中调用了SSViewController,所以也要把.m后缀变为.mm。

然后再编译一下,发现编译成功了。那么我们的教程也就结束了。

注意事项

这时因为没有删除ZXingWidget项目中的Tests文件夹,删除掉就OK 了。

2,在删了Tests文件夹后,编译发现还会报错,如图:

这是因为,没有把ZXingWidget.xcodeproj拖到和zxing同级目录,拖ZXingWidget.xcodeproj到和zxing同级目录

如图:

3,有的人不喜欢把zxing文件和.xcodeproj放在同一级目录下面,就像我们的demo那样。如果放在其他地方也可以,这是需要修改header
search path中的路径。如果我们把zxing放到TestZXing目录下面,如图:

这时需要修改header search path为:

分享自:http://hi.baidu.com/_delegate/item/56ef8c034c2c3d1aaddc7081

时间: 2024-10-14 09:53:14

ios上ZXing库的配置流程的相关文章

qt-qml移动开发之在ios上开发和部署app流程简介

qt5.3已经全面支持移动开发,除了mac,windows,linux,还支持ios,android,wp,meego等移动平台,本教程是作者根据自己的经验,从头讲怎么样在ios上发布自己的app,由于目前国内相关文章还比较少,可能文章里有所疏漏,或者并非最优方法. 软件准备:qt5.3 , xcode 5.1.1 编译环境: Mac os Qt5.3下载地址http://qt-project.org选择对应的Mac ox版本,支持iOS和android的版本,安装过程省略 Xcode在app

qt-qml移动开发之在ios上开发和部署app流程简单介绍

qt5.3已经全面支持移动开发,除了mac,windows,linux.还支持ios,android,wp,meego等移动平台,本教程是作者依据自己的经验,从头讲怎么样在ios上公布自己的app.因为眼下国内相关文章还比較少,可能文章里有所疏漏,或者并不是最优方法. 软件准备:qt5.3 , xcode 5.1.1 编译环境: Mac os Qt5.3下载地址http://qt-project.org选择相应的Mac ox版本号,支持iOS和android的版本号.安装过程省略 Xcode在a

WWDC2014之iOS使用动态库 framework【转】

from:http://www.cocoachina.com/industry/20140613/8810.html JUN 12TH, 2014 苹果的开放态度 WWDC2014上发布的Xcode6 beta版有了不少更新,其中令我惊讶的一个是苹果在iOS上开放了动态库,在Xcode6 Beta版的更新文档中是这样描述的: Frameworks for iOS. iOS developers can now create dynamic frameworks. Frameworks are a

WWDC2014之iOS使用动态库

苹果的开放态度 WWDC2014上发布的Xcode6 beta版有了不少更新,其中令我惊讶的一个是苹果在iOS上开放了动态库,在Xcode6 Beta版的更新文档中是这样描述的: Frameworks for iOS. iOS developers can now create dynamic frameworks. Frameworks are a collection of code and resources to encapsulate functionality that is val

在iOS中使用ZXing库

前言 ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, Objective-C, ActionScript和Ruby. 我上周在iOS项目开发中使用了ZXing的扫描二维码功能.在此总结一下如何将ZXing集成到已有的iOS工程中,分享给大家. 集成步骤 首先去Google Code或Github将ZXing的代码下载下来,整个工程比较大,我们只需要其

关于iOS上的静态库

最近再进行项目的真机调试,然后发现了一个天坑.就此研究了一些iOS上的静态库的使用: 首先我们是直接拿一个可以运行的项目来制作静态库的,网上大部分都是先创建静态库然后再写内容,看看我的方法. 1.把子项目导入到总项目工程里面,然后删除子项目的运行文件,然后再里面创建一个静态库!!!(不要创建framework那个,非常坑.我给坑了好久具体下面在说吧)创建一个.a的静态库.名字没有什么影响自己喜欢就可以,我一般是按照原来的名字来的. 2.然后在总项目工程里面添加链接  Build Phases -

关于iOS上使用ffmpeg的编译配置

使用ffmpeg进行音视频开发,首先编译需要把ffmpeg的源码编译成静态库,编译不是大问题,关键问题是编译的时候的各种配置该怎么设置的问题.之前在网上搜索学习,这篇文章不错:iOS: FFmpeg编译和使用问题总结 .有些文章给出编译的整个命令,有的给脚本链接,但是都有一些问题,因为ffmpeg版本更新了.iOS版本更新了(我下的是ffmpeg2.3).最后东拼西凑,终于编译成功了一个,编译命令是: (1) ./configure --prefix=../i386 --disable-ffmp

在iOS中使用ZXing库[转]

前言 ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, Objective-C, ActionScript和Ruby. 我上周在iOS项目开发中使用了ZXing的扫描二维码功能.在此总结一下如何将ZXing集成到已有的iOS工程中,分享给大家. 集成步骤 首先去Google Code或Github将ZXing的代码下载下来,整个工程比较大,我们只需要其

【转】Unity上同时兼容Android和IOS的JSON库

转自卡神博客Unity上同时兼容Android和IOS的JSON库 虽然说JSON解析很常见,而且也经常看见大家讨论怎么解析.但是还是很多人经常出现各种问题.这篇文章就一次性帮你解决JSON解析的问题. 本篇文章使用JSON解析在真实项目中使用,同时兼容PC.android和IOS.没啥好说,一个C#写的解析JSON的工具类,在unity中能正常解析. 不太好用的JSON解析库:LitJson在IOS上不稳定,有时正常,有时不正常..MiniJson据说支持不完整,没测试. 本文给出的JSON解