您的位置:首页 > 其它

ZBar的.a静态库文件报错

2015-10-05 18:11 351 查看
首先Zbar是开源的我们在github上可以下载到Zbar的 源文件 如:https://github.com/twotoasters/zbar
zbar的SDK :https://github.com/bmorton/ZBarSDK

源文件是用来生成SDK用的, 既然下载的静态库.a不能用,那我们直接用源文件生成.a文件 步奏如下:

1、打开下载的源文件并解压,找到里面的iphone文件夹,删除examples 文件夹,然后直接双击打开zbar.xcodeproj

2、选中工程--project--Build Settings --(搜索)Valid
Architectures 添加 arm64;再添加armv7;再添加arm7s;再添加i386;再添加x86_64

选中工程--project--Build Settings --(搜索)Architectures 选中刚才设置的。

如图:


3、然后连上手机 选中手机commend +b编译
(此处有人说 不能连手机,但是我不练手机编译不成功,连上手机反倒成功了,所以出问题别找我哈).

4、工程目录Products下 libzbar.a右键 在find中查看就可以发现有两个文件夹 Debug-ipheos和Debugi-phonedimmulator可以去调试了.

5、如果要真机和模拟器静态库合并 在终端执行下面代码:

lipo -create + 真机.a文件
(此处有空格)+ 模拟器.a文件 + -output + 输出的合并文件。

lipo -create /Users/Jianyi_Tech/Desktop/JYZbar/JINTtanku/Debug-iphoneos/libzbar.a
/Users/Jianyi_Tech/Desktop/JYZbar/JINTtanku/Debug-iphonesimulator/libzbar.a -output /Users/Jianyi_Tech/Desktop/JYZbar/JINTtanku/he/libzbar.a

ZBar的使用方法:

zbar给我们提供了两种 方法一个是创建一个VIew的扫描视图 ,一个是创建一个Viewcontorller的摄像机扫描控制器,我比较喜欢用一个view 方便控制视图的组件 所以只介绍第一种方法。

1、将ZbarSDK文件夹拖入工程 (其中包括 headers文件夹、libzbar.a文件和Resources文件夹)。

然后 代码如下:.h中

#import <UIKit/UIKit.h>
#import "ZBarSDK.h"

@interface JYZBarViewController : UIViewController<ZBarReaderViewDelegate>
@property (nonatomic,strong) ZBarReaderView *readerView;

@end


.m中如下
#import "JYZBarViewController.h"

@interface JYZBarViewController ()

@end

@implementation JYZBarViewController

- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
[self creatUI];
}
-(void)creatUI{
//创建扫描窗
_readerView = [[ZBarReaderView alloc]init];
_readerView.frame =self.view.frame;
[self.view addSubview:_readerView];

//设置代理
_readerView.readerDelegate = self;
//关闭闪光灯
_readerView.torchMode = 0;
//扫描区域计算  值范围是  0-1
//    _readerView.scanCrop = CGRectMake(0.1, 0.1, 0.5, 0.5);
_readerView.scanCrop = [self scanCropRect1];
[_readerView start];//开始扫描
}
//条形码
-(CGRect)scanCropRect1{
float screenWide = [UIScreen mainScreen].bounds.size.width;
float screenHeight = [UIScreen mainScreen].bounds.size.height;
float scanCropWide = 200.0;
float scanCropHeight = screenHeight -44*2;
return CGRectMake( 44.0/screenHeight,((screenWide - scanCropWide)/2.0)/screenWide, scanCropHeight/screenHeight, scanCropWide/screenWide);
}
#pragma mark - <ZBarReaderViewDelegate>
- (void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
for (ZBarSymbol *symbol in symbols) {
NSLog(@"-----%@", symbol.data);
break;

}
[self.readerView stop];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: