创建动静态库

  • 静态库:.framework、 .a
  • 动态库:.framework、 .tbd
  • 查看某一类库的的架构命令:lipo -info [静态库名]

    iOS真机和模拟器架构

1
2
3
4
5
6
7
8
模拟器架构:
4 / 4S / 5 / 5C: i386 32位
5S / 6 / 6p / 6s / 6ps : x86_64 64位

真机架构:
4 / 4S : armv7 32位
5 / 5C : armv7s 32位
5S / 6 / 6p / 6s / 6ps: arm64 64位

.a静态库创建

  1. 创建一个项目,创建项目的时候选择:Framework/Library
  2. 项目的名称就是静态库的名称
  3. 项目创建好之后,添加代码
  4. 选择真机和模拟器分别编译一次
  5. 如果项目中Products文件夹下的.a文件变黑,说明静态库创建成功

创建静态库的时候,创建所有的库(i386、x86_64、arm64)

1
target -> Build Settings -> Build Active Architecture Only -> Debug -> No

创建库的时候添加其它的设备架构

1
target -> Build Settings -> Architectures -> Others -> +

合并两个类库

1
lipo -create [要合并的库A的路径] [要合并的库B的路径] -output [合并后新库的路径]

注意

  • 真机和模拟器合并类库的时候,如果类库小则合并,否则不要合并
  • 当使用资源时,应该手动导入bundle包;在代码中加载资源包文件时,应该加上资源包的路径

Framework库

  1. Xcode 默认创建的自定义库是动态库
  2. framework库和.a 库创建的过程相似
  3. 项目中使用framework动态库后,不能在AppStore中上线

framework动态库的使用

导入动态库framework需要做下面操作,否则启动会报错
targets -> general -> Embedded Binaries中添加framework.动态库

将默认的动态修改为静态的操作:
选中项目 ->targets ->Build Settings -> 搜索mach -> 修改为静态库(Static Library)

framework库中添加公开头文件

1
framework -> headers -> Private中的头文件拖到Public