美文网首页
打包.framework 静态库(含第三方)

打包.framework 静态库(含第三方)

作者: 水煮杰尼龟 | 来源:发表于2017-08-07 16:54 被阅读153次

最近项目临近完成之际,需要把整体功能及网络请求这块做个sdk,如是乎开始了我的第一次打包之旅,遇到不少坑,所以做一个记录吧。

按照常规流程走,其实打个包应该是很容易的一件事情,我也是照着网上的流程走了一遍,倒是遇到了不少问题。因为我要打的包里含有第三方,如果不然外面用也就算了,可是我感觉我外面还是会用的,所以说第三方需要暴露一下,期间就产生了一些问题。
先走一波流程吧:


首先创建一个.framework.png

再做一些相应的配置。

支持所有架构.png 最低版本.png 去掉无用代码.png 可以减少.framework30%体积.png 选择静态库。.png 1.png 2.png

再就将自己的功能文件以及第三方文件拖进去:

讲自己的功能文件及三方拖进去.png

然后继续走流程:

要公开的头文件添加到这里.png 这里也可以添加公开头文件.png 将你要暴露的头文件写到自动创建的.h里面.png 选择真机,模拟器各编译一次.png 打开文件夹.png 静态库就在这了.png

然后就是运用终端命令将两个库合二为一 : lipo -create iphoneos下frameworkTest的路径 simulator下frameworkTest的路径 -output 新的路径

终端命令合成.png

执行命令后会生成一个.lipo文件:

生成一个.lipo文件.png

将生成的.lipo改名为静态库名,拖进随便一个framework覆盖原来的,产生的新的framework就是你的静态库了。


最后的framework.png

这样就就可以拿去用了,流程大概就这么走完了。说说我遇到的问题吧,比如我这里想要暴露XMNetworking,我将这个头文件暴露出去了,当我打完包引用的时候,直接就报错了,原因是找不到一些头文件。

因为这里紧紧只是暴露XMNetworking.h是不够的,只要你暴露的头文件中引用了的头文件你都需要暴露出去,不然都会找不到。

当我搞定这个问题的时候,又遇到了新的问题,有些方法竟然也找不到,说我发了无法识别的方法,我不打包的时候明明是用的好好的,打完就找不到那方法我也是醉了,后面发现了,是第三方一个对象调的方法不是他自己的方法,而我这个第三方什么都没有暴露出来,所以就找不到了,这个时候要换成这个对象自己的方法或者暴露这个三方才行。

如果打包的库里有分类,记得引用的时候要-ObjC。

第一次打包静态库,小小的记录,小小的总结一下。

相关文章

网友评论

      本文标题:打包.framework 静态库(含第三方)

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