美文网首页
ios-静态库sdk中Category方法不可用

ios-静态库sdk中Category方法不可用

作者: 简鱼7819 | 来源:发表于2019-08-29 15:39 被阅读0次

项目需求,需要制作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解决最简单。

相关文章

网友评论

      本文标题:ios-静态库sdk中Category方法不可用

      本文链接:https://www.haomeiwen.com/subject/efviectx.html