iOS包含第三方库的SDK Demo
##Framework(静态库+动态库)的制作

参考修改&转载: https://www.jianshu.com/p/155a3cfb765e?utm_source=itdadao&utm_medium=referral
本次将介绍Xcode制作Framework的过程,本次制作的Framework静态库依赖其他第三方静态库(Framework和.a)。
1> 新建工程
新建Framework工程
这里要选Framework,如果选择右边的Static Library制作出来的是.a静态库。
2> 导入所有要打包的文件和其他第三方静态库
正常导入要打包的文件就可以了,在导入第三方静态库的时候要注意,不要选择添加到target中,如果添加进去要去target里面把第三方静态库删掉(只需导入,不要添加进target)
导入第三方静态库之后,再导入第三方静态库之后再link依赖的系统库:
注意上面的运行目标,最低支持到iOS9。
要打包的文件和第三方静态库全部导入完成
3> 修改building system配置
xcode10创建项目时新增了New building system 而且是默认的,所以导致无法在引用类时不提示,造成编译是报错.
解决方法:File - Project setting - building system - Legecy building system
4> 暴露头文件
将头文件暴露出去,供外界使用,所有的编译文件都在Project中,需要右击添加到public里面,暴露头文件:
5> 选择Mach-O的编译方式
这是最重要的一步,这一步决定我们制作出来的是静态库还是动态库,默认选择的是Dynamic Library,要手动选择Static Library
6> 编译
如果你的依赖库里面有lib开头的dylib动态库,此时应该会报错
什么意思呢?大概就是没找到对应的库文件,因为tbd是苹果提供的新的动态库格式,之前都是dylib,解决:
先把原来的.tbd删掉,然后再次添加,这个时候选择add other,在弹出的窗口中按快捷键shift + command + G 调出finder的前往窗口,输入/usr/lib,然后添加相应的dylib动态库
替换完成之后重新编译项目,生成Framework(可在Product文件中右击在finder中显示找到)
7> 使用
新建一个文件夹,将制作好的静态库拷贝出来放进去,再将第三方静态库拷贝到相同的文件夹中,此时只要将这个文件夹提供给外界使用就可以了,此时测试demo验证打包好的SDK是否可以正常使用;
至此我们已经完成了Framework中包含其他第三方静态库的制作。
如果需要制作动态库,只需要在第5步中将Mach-O的形式改为Dynamic Library就可以了,其他步骤一样;
下周继续…