重新打包第三方框架ZBarSDK静态库,同时支持真机与模拟器测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/black_hole2009/article/details/50513998

运行环境: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分别是真机和模拟器运行所需的静态库文件。
合并这两个静态库文件即可。



8.合并命行:lipo -create 路径/Release-iphoneos/libzbar.a 路径/ Release-iphonesimulator/libzbar.a -o libzbar.a
解释:lipo合并两个库的命令:lipo -create 第一个包 第二个包 -o 合并以后的包

9.合并后使用lipo -info libzbar.a查看新生成的静态库文件可以输出
Architectures in the fat file: libzbar.a are: armv7s armv7 armv6 i386 x86_64 arm64 

10.替换掉项目中官方的静态库文件即可。


文章参考:ios6和iphone5的适配之第三方静态库

猜你喜欢

转载自blog.csdn.net/black_hole2009/article/details/50513998
今日推荐