运行环境:Xcode 7.2 iOS 9.2
github下载的第三方框架ZBarSDK官方版是不支持Xcode模拟器运行的,其静态库libzbar.a仅支持iPhone的指令集,查看静态库文件的信息方法: 终端cd到该libzbar.a文件所在目录,输入命令行:lipo -info libzbar.a,官方版静态库可以看到输出如下:
Architectures in the fat file: libzbar.a are: armv6 armv7 i386,后面的armv6 armv7 i386 表示指令集。
不同指令集的意思表示如下:
- armv6 : iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch
- armv7 : iPhone3GS, iPhone4, iPhone4S
iPad, iPad2, iPad3(The New iPad), iPad mini
iPod Touch 3G, iPod Touch4
- armv7s: iPhone5, iPhone5C, iPad4(iPad with Retina Display)
- arm64 : iPhone5S, iPad Air, iPad mini2(iPad mini with Retina Display)
- i386 : mac
- x86_64 : 64位微处理器架构及其相应指令集的一种,模拟器运行所需的
由于官方的不支持模拟器运行,所以项目测试必须用真机测试,比较麻烦,下面是生成真机及模拟器都支持的静态库的方法:
1.下载官方的源码包
官方主页:http://sourceforge.net/p/zbar/_list/hg
源码包:http://sourceforge.net/p/zbar/code/ci/default/tree/
2.解压以后,进入里面的iPhone文件夹,删除里面的Examples,双击zbar.xcodeproj运行工程。
3.Command+B编译工程(这一步会提醒更新Setting,建议更新完以后再运行)。
4.配置所需支持的指令集
build settings 搜索 architectures ,设置Architectures与Valid Architectures支持的指令集为arm64,armv6,armv7,armv7s
5.Edit Scheme中选中run,设置Build Configuration设置为Release,分别选择真机与模拟器运行
6.运行之后在项目框架中可以看到Products目录下libzbar.a 颜色已经变为黑色,表示已经有文件生成,选中该libzbar.a
7.右键show in finder进入该文件所在位置,可以看到如下两个文件夹,Release-iphoneos文件夹是真机运行生成的,
Release-iphonesimulator文件夹是模拟器运行生成的,里面存放的静态库文件libzbar分别是真机和模拟器运行所需的静态库文件。
合并这两个静态库文件即可。