1.记录自己在打包framework过程中包含了第三方的framework。
-
首先找到第三方的二进制文件WeChatb1f590c44c760c0194ee21e00d9d1a4a.png
-
再将二进制文件后缀改成 .a 文件。 将.a文件放入Header文件里面。再将第三方.framework 拷贝出来。结构如下:
WeChatb0e0669067bab728f59e09c7bc25aec7.png
OK 准备工作已经做的差不多了,我们可以自己来制作framework了。
1.创建framework工程
2.将framework拖进工程中,工程分两部分,一个是原始文件(红色部分),一个是我需要进行封装的文件(蓝色部分):
3.将bitcode置为NO
4.1 选择工程->targe->build setting,在搜索框中搜索linking,进行如下设置
4.2 将Build Active Architecture Only 设为 NO
5.1 把要公开的头文件已到Public中去,在使用.framework时只能调用公开.h文件中的声明。
5.2 完成上述步骤之后,在HYSDK.h文件中,把所有需要暴露的.h文件都用#import < HYSDK/PublicHeader.h>引入,记住一定要将所有的需要暴露的.h文件都写在给定位置,不然编译后生成的.framework在引用的时候会有警告;
6.开始编译,选择Generic iOS Device 或者 真机 或 模拟器,编译一下,再选择模拟器环境编译一下
-
上面的操作会出现两个版本的.framework,点击Products中的framework,选择右键在文件夹中查看。
屏幕快照 2019-07-30 下午3.28.26.png
8.我这里只是做真机的。如果是需要模拟器和真机都有的话可以分别将模拟器和真机编译出来的文件进行合并 。终端指令:lipo -create +上面两个文件的路径 +-output+ 合成后文件的输出路径(路径后再拼一下要导出的文件就不会出现其他教程里 can't move temporary file的error了,这样直接生成所需目标文件不会生成.lipo的文件);
lipo -create /Users/shiguang/Library/Developer/Xcode/DerivedData/HYSDK-dyfcbfdpajuozpbaowtdlgrxtgpm/Build/Products/Debug-iphonesimulator/HYSDK.framework/HYSDK/Users/shiguang/Library/Developer/Xcode/DerivedData/HYSDK-dyfcbfdpajuozpbaowtdlgrxtgpm/Build/Products/Debug-iphoneos/HYSDK.framework/HYSDK -output /Users/shiguang/Desktop/00000Demo/000/0lib/HYSDK
9.创建成功之后。新建工程。将新的framework再倒入进去。配置相关依赖库即可。如果报找不到第三方的库,则需要将第三方SDK.framework倒入进来即可。