说教无益,折断的骨头是最好的课本。
前言
我们公司是做蓝牙硬件的产品的,最近有一家公司要和我们公司合作,他们想在自己的app中加入我们app的某些界面,说的是界面自己写,我们给他们数据,这样就需要用的我们的一些工具类,但是我们又不想把核心算法给他们,在这样的前提下,我就用到了framework。然后呢,刚巧有一个人问我framework该怎么整,于是,就有了这篇文章。小白可参考,大神请指正。
格式
- 静态库:以.a 和 .framework为文件后缀名。(.a文件不能直接使用,要配合.h文件,如有需要再加Resource文件;framework可以直接使用)
- 动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名。
本质区别
- 静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝。
- 动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用(如系统的UIKit.framework等),节省内存。
系统的framework都是动态的,我们自己创建的是静态的,动态的App Store审核是不会通过的,这点你就放心吧。
优点
- 静态库
1、模块化,分工合作。
2、避免少量改动经常导致大量的重复编译连接。
3、也可以重用,注意不是共享使用。 - 动态库
1、可以将最终可执行文件体积缩小。
2、多个应用程序共享内存中得同一份库文件,节省资源。
3、可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。
后记
目前只是写这么多,以后想到再加上。说了这么多还没有说怎么创建呢!
请看下篇文章 -- iOS — Xcode8.3制作FrameWork