iOS 制作静态framework

2018-08-28  本文已影响0人  jeckHao

前言

虽然制作静态framework已经很普遍了,度娘一搜一大把,但是还是把自己做的记录一下吧。
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。
iOS中的静态库有 .a 和 .framework两种形式;动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式。

静态库与动态库的区别

静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。
总结:同一个静态库在不同程序中使用时,每一个程序中都得导入一次,打包时也被打包进去,形成一个程序。而动态库在不同程序中,打包时并没有被打包进去,只在程序运行使用时,才链接载入(如系统的框架如UIKit、Foundation等),所以程序体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过。
处。

创建framework静态库

注意,需要用release模式下的真机和模拟器各自编译一次,不需要debug

编译生成静态库.png
//合并reslease和debug的framework
lipo -create /Users/hgm/Desktop/Release-iphoneos/HHCommentExten.framework/HHCommentExten /Users/hgm/Desktop/Release-iphonesimulator/HHCommentExten.framework/HHCommentExten -output /Users/hgm/Desktop/iPhone/HHCommentExten

/Users/hgm/Desktop/为Release-iphoneos和Release-iphonesimulator在你本机的位置。合并之后,把 HHCommentExten拖入到HHCommentExten.framework即可使用。

完毕:这只是将没有粘连的代码整合到静态framework,其中没有关联其他静态类库,因为我还没有做相关需求,所以先写到这里吧。

上一篇下一篇

猜你喜欢

热点阅读