iOS----创建静态库
静态库
1.什么是库?
库是程序代码的集合,是共享程序代码的一种方式
2.根据源代码的公开情况,库可以分为2种类型
开源库
- 公开源代码,能看到具体实现
- 比如SDWebImage、AFNetworking
闭源库
- 不公开源代码,是经过编译后的二进制文件,看不到具体实现
- 主要分为:静态库、动态库
3.静态库和动态库的存在形式
①静态库:.a 和 .framework
②动态库:.dylib 和 .framework
静态库和动态库在使用上的区别
- 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝(左图所示)
- 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存(右图所示)
需要注意的是:
项目中如果使用了自制的动态库,不能被上传到AppStore
一,使用创建静态库
然后写静态库的核心代码,
分别选择真机和模拟器,编译就会生成静态库
用不同的模拟器生成的静态库有不同的支持手机架构、
- 普及CPU架构
每一个手机都是属于自己的CPU,不同的CPU采用的是不同的CPU架构(指令集)
任何一个静态库都有它支持的CPU架构,如果是跑在不支持的CPU架构上面,那么就报错
模拟器
iPad2/iPhone4s/iPhone5 : i386
iPadair/iPhone5s-->iPhone6plus : x86_64
真机
iPhone3gs-->iPhone4s : armv7
iPhone5/iPhone5c : armv7s
iPhone5s-->iPhone6Plus: arm64
----- 命令行 -- 进入文件目录 ------
查看静态库支持的架构:lipo -info 静态库
另外也可以这样设置
生成的真机使用静态库和模拟器静态库,可以合并
- 合并静态库
- lipo -create 静态库1 静态库2 -output 新的静态库的名称