ios oc 使用系统库 制作framework NSXmlKit

为了开发方便或者是版权问题,我们在开发过程中,避免不了要采用framework来封装我 们实现的一些功能,这个也是开发过程中比较常见的一种策略,如果要生成的framework是独立的、即压根没有引用系统的库做自己的库的基础,应该不会出现系统SDK里面的 头文件引用不到的问题。比如这里以libxml.tbd为例,封装一个XML解析的库


我们使用libxml库,我们在header search paht里面也添加了对其的路径引用,可是为什么报这个错!这太不合理了!


思之想后,怀疑是对libxml的引用问题导致的SDK头文件无法找到,修改添加过程中的non-recursive参数为recursive,再次进行编译,一切OK!由此得出结论,如果你要生成的库需要调用到系统中某一个库,需要将其路径引用属性设置为recursive!



再次确认编译没有任何问题。继续我们的工作。

编译生成真机和模拟器需要的文件进行合并,如果生成,这里不做阐述。


我们便拿到了我们封装好的库,拖进我的目标项目中,我们再次进行编译看效果如何!



一波三折之后,我们自己封装的库文件竟然又报错
include of non modular header inside framework。。。。


继续解决之

在目标项目中的TARGET--->BUILD SETTINGS选项里面找到

CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES


看到这个值为NO,我们将其设置为YES,再次进行编译,OK,通过!正常调用此XML解析库,发现一切正常!


综上,这里有个注意之处,就是如果自己封装的库中引用了SDK中的动态库,需要将其引用路径属性设置为recursive并将目标项目中的CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES设置为YES!!!切记切记!!


当然此问题是基于libxml而出现问题,别的是不是会出现问题,自行体会!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaocarbon

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值