项目需求,需要制作SDK提供给客户方
在sdk中添加了Category分类,但是sdk集成时出现问题,有方法不调用,有的是load的runtime运行时方法也没有启作用。
一番查找百度Goole后,知道原因在于Category本身上面。在静态库这样神奇二进制集成到OC的运行时机制,各种神奇的bug都会出现。
常用处理方法:通过在Other Linker Flags添加-all_load或者-force_load和指定的路径,或者-ObjC
各个值不同点:
-all_load,把静态库所有文件都加载,不管有没有用到,很霸道,当然结局也有缺陷,那就是最终打包会大些。想想支付宝微信的sdk集成,粗暴的-all_load解决一切!
-force_load和指定的路径:这个要比-all-load好一些,先在Other Linker Flags添加-force_load,然后把你想处理的静态库.a的路径加入下一条,就ok了
-ObjC:是把静态库对象所有的OC类方法加载,但是这种方法不会载入任何没有OC代码的文件,而且据查找有说一些64操作系统及时添加-ObjC也没有用(没有测=。=)。
综上所述:
可以理解为啥支付宝微信的sdk直接让添加-all_load,-all_load解决最简单。
网友评论