首先 先介绍一下什么是库.所谓库就是程序代码的集合,是共享程序代码的一种方式。库的分类分为开源库和闭源库 至于什么意思 字面的意思相信你们也能看懂
静态库和动态库的存在形式和使用区别
存在形式:
静态库
以".a"或者“.framework”为文件后缀名
动态库
以".dylib"或者“.framework”为文件后缀名
这里先介绍一下以.a文件为后缀的吧
iOS 设备的CPU架构
模拟器:
4s-5: i386
5s-7 Plus: x86_64
.a文件静态库打包
1、打开Xcode创建一个新的工程,这里以Xcode9为例,选择工程如下:
2、创建工程完毕后,再创建一个工具类IOSState,添加一个方法用于测试
3、运行工程进行打包
运行完毕后,我们会看到工程中Products文件夹下的libStaticLib.a文件由红色变成了黑色。右键show in finder可以在其目录下找到它。这就是我们打包好的.a静态文件了。
4、公开接口头文件
targets->Build Phases->Copy Files->"+"你需要公开的头文件
这里我们把新建的测试类StaticLibTool.h公开
将其导入到工程即可.
但是换模拟器后 则编译不通过
只需设置适配所有模拟器架构
project -> buildSeting -> Build Active Architecture Only 设为NO
设置完成后,我们重新运行打包静态库文件(这时你可随便选一个模拟器),按照上述第6步终端查看其支持的架构,我们可以看到终端输出的结果是同时支持 i386和x86_64,这也就意味着同时支持所有模拟器。
打包支持真机架构的静态库
所有流程都跟上面的一样,只是我们运行打包时要选择真机运行,如下图你可以选择自己插上去的真机,也可以选择Generic ios Devices。当然不要忘记了设置支持所有真机机型架构: Build Active Architecture Only 设为NO。
所有的都搞完