美文网首页
创建Framework

创建Framework

作者: lym不解释 | 来源:发表于2017-01-24 10:45 被阅读16次

库 说白了就是一种可执行代码的二进制格式,可以被载入内存中执行。
什么时候用库?
一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。
另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 一下,不会浪费编译时间。

库分静态库和动态库两种。
iOS中的静态库有 .a 和 .framework两种形式;
动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式。
Framework 实际上是一种打包方式,将库的二进制文件,头文件和有关的资源文件打包到一起,方便管理和分发。

步骤:
1.创建一个framework

QQ20170124-093148.png

2.删除默认创建的.h , info.plist要保留;

QQ20170124-094114.png

3.导入自己要打包的源文件,或自己创建

QQ20170124-094533.png QQ20170124-104722.png

4.配置项目

QQ20170124-094838.png QQ20170124-100032.png QQ20170124-100140.png QQ20170124-101245.png

5.cmd+b 分别在模拟器可真机下编译,编译完成后可以看到红色的product变成黑色,

QQ20170124-100459.png

6.show in finder

QQ20170124-101934.png

7.合并模拟器版framework和真机版framework
合并的命令和.a稍有不同,不同之处是:framework静态库合并的不是framework,而是framework下的一个二进制文件,即上一步图中标记的文件。
lipo -create 第一个framework下二进制文件的绝对路径 第二个framework下二进制文件的绝对路径 -output 最终的二进制文件路径。

QQ20170124-102936.png

8.最后将任何一个framework中的二进制文件替换成合并后的二进制文件即可。
把framework添加到要使用的项目中即可使用。

QQ20170124-103823.png

相关文章

网友评论

      本文标题:创建Framework

      本文链接:https://www.haomeiwen.com/subject/fwszbttx.html