IOS-Framework的开发
最近公司的蓝牙功能要给一个外包公司用,所以要进行原先代码的封装,把原先的功能代码封装成一个SDK,暴露给别的开发者使用,我就又开始制作这个SDK了,不过看起来挺简单的一件事情却废了很多周折。
首先第一个坑:swift语言不能用来制作静态库。这也是我写完才发现的,刚开始搞了一个.a文件,搞了半天以为做好了,结果死活用不成,后来才知道要用swift写成包给别人用的话,只能用framework
然后就开始了第二个坑,因为原先的代码里面用到了OpenCV,所以我就在这个framework里面加了一个pod文件,引进来了OpenCV的库。之前项目大哥给了一个OC的操作OpenCV库的头文件和C++文件,然后我向往常一样给项目加了一个桥接文件: xxxx-bridge.h,然后在项目的build setting>>swift compiler - general设置了桥接文件的路径
然后我就去启动了,然后报错了,提示了一些信息这里遇到的问题就是因为frmaework生成的时候会生成一个头文件,这个头文件在根目录,需要先把这个文件删除掉,桥接文件才会生效
第三个坑:这个bug我没重现出来,但是这个bug是存在的,编译以后会出现failed to emit precompiled header这里的解决方案是在build setting >> Excluded Architectures这里把这个SDK的架构设置成arm64就可以了
大概就是这样了,我们可以下班了,不是吗