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 新的静态库的名称
原文地址:https://www.cnblogs.com/ShaoYinling/p/4779788.html