iOS静态库

@bingoogolapple 2016-04-20 15:43:38发表于 bingoogolapple/bingoogolapple.github.io iOS

静态库的基本制作

选择头文件一起打包

这种方式支持a/framework
Targets->Build Phases->Copy Files        如果是framework,在Subpath后面填上Headers。如果是a,在Subpath后面填上include/$(PRODUCT_NAME)

或

这种方式支持framework
Targets->Build Phases->Headers  添加或移动.h文件到Public中

每一个静态库支持的架构是固定的,模拟器和真机需分别打包 lipo -info liblibstatic.a(如果是framework则改成其目录中没有后缀名的子文件)

input file liblibstatic.a is not a fat file
Non-fat file: liblibstatic.a is architecture: i386

模拟器CPU架构

4s --> 5 : i386
5s --> 6plus : x86_64

真机CPU架构

3gs --> 4s : armv7
5/5c : armv7s  静态库只要支持了armv7,就可以跑在armv7s的架构上
5s --> 6plus : arm64

设置生成支持多种架构的库,但这种方法只能生成支持各个真机或各个模拟器版本的库

Targets->Build Settings->Build Active Architecture Only  选择No


Architectures in the fat file: liblibstatic.a are: i386 x86_64 

静态库合并(如果是framework则改成其目录中没有后缀名的子文件)

lipo -create 静态库1 静态库2 -output 新的静态库


lipo -info libstatic.a 
Architectures in the fat file: libstatic.a are: armv7 i386 x86_64 arm64