最近项目临近完成之际,需要把整体功能及网络请求这块做个sdk,如是乎开始了我的第一次打包之旅,遇到不少坑,所以做一个记录吧。
按照常规流程走,其实打个包应该是很容易的一件事情,我也是照着网上的流程走了一遍,倒是遇到了不少问题。因为我要打的包里含有第三方,如果不然外面用也就算了,可是我感觉我外面还是会用的,所以说第三方需要暴露一下,期间就产生了一些问题。
先走一波流程吧:
再做一些相应的配置。
再就将自己的功能文件以及第三方文件拖进去:
然后继续走流程:
然后就是运用终端命令将两个库合二为一 : lipo -create iphoneos下frameworkTest的路径 simulator下frameworkTest的路径 -output 新的路径
执行命令后会生成一个.lipo文件:
将生成的.lipo改名为静态库名,拖进随便一个framework覆盖原来的,产生的新的framework就是你的静态库了。
这样就就可以拿去用了,流程大概就这么走完了。说说我遇到的问题吧,比如我这里想要暴露XMNetworking,我将这个头文件暴露出去了,当我打完包引用的时候,直接就报错了,原因是找不到一些头文件。
因为这里紧紧只是暴露XMNetworking.h是不够的,只要你暴露的头文件中引用了的头文件你都需要暴露出去,不然都会找不到。
当我搞定这个问题的时候,又遇到了新的问题,有些方法竟然也找不到,说我发了无法识别的方法,我不打包的时候明明是用的好好的,打完就找不到那方法我也是醉了,后面发现了,是第三方一个对象调的方法不是他自己的方法,而我这个第三方什么都没有暴露出来,所以就找不到了,这个时候要换成这个对象自己的方法或者暴露这个三方才行。
如果打包的库里有分类,记得引用的时候要-ObjC。
第一次打包静态库,小小的记录,小小的总结一下。