iOS 静态库.a和.framework的制作流程

2021-02-23  本文已影响0人  人间四月天_Andy

学习笔记,如有错误,欢迎批评指正!!!

静态库

静态库的存在形式:xxx.axxx.framework
注: 本文所写xxx.framework均为静态库

静态库的制作流程(xxx.a)

xxx.a静态库的制作

我们是在 模拟器环境下 编译生成的静态库,所以只支持模拟器运行,真机不能运行。我们也可以切换到真机环境下进行编译生成。

9.jpg

还可以生成 Release版本的静态库。Edit scheme --> Run --> Release

10.jpg

真机和模拟器环境下分别编译之后:


11.jpg
Debug版本和Release版本的区别

如何生成支持不同架构的静态库?

答:静态库合并

终端命令:lipo -create xxx.a xxx.a -output xxx.a

拿上面生成的真机和模拟器的静态库为例:Release版本的

合并静态库的优缺点
  • 优点:开发过程中既可以在真机上调试,也可以在模拟器上调试
  • 缺点:如果静态库太大,合并打包后的静态库和更大

静态库的制作流程(xxx.framework)

==步骤==

  1. 新建项目,选择.framework静态库 1.jpg
  2. 设置编译所有架构,Build Setting --> Build Active Architecture Only, 改成 NO 2.jpg
  3. 注意,默认制作的xxx.framework是动态库,需要改成 静态库。Build Setting --> Mach-O Type, 改成 Static Library 3.jpg
  4. 注意:将需要暴露的头文件暴露出来 4.jpg
  5. 编译,查看编译好的xxx.framework 5.jpg
  6. 查看是不是静态库类型:终端命令 file xxx.framework 6.jpg
  7. 接下来,复制到项目中,测试自己生成的xxx.framework 7.jpg

静态库xxx.a 和 静态库xxx.framework的区别

  1. xxx.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件
  2. .a文件不能直接使用,至少要有.h文件的配合;.framework文件可以直接使用
上一篇 下一篇

猜你喜欢

热点阅读