最近在用cocoapods更新工程的依赖库后,总是报错说xxx.h file not found。如下图(下图是某宝公司内部用来网络请求的一个非开源库):
。针对于这个错误,我之前写过一篇文章iOS经典错误library not found for -lXXX中提到过这类问题的解决方案。但是这次却是遇到了大麻烦,按照传统的解决方案根本不能解决这个问题。
思前想后,发现没有理由报这个错误,因为podfile中已经把这个依赖库的版本号写死了,没有用~>
,也没有用>
、>=
之类的符号,前后更新的内容应该是一模一样的。对比podfile.lock文件,只是发现了某些库内部依赖的框架有版本更新,没有什么异样。然后尝试做了下面的一些事情,最终也都无效。
- 查看依赖库,发现确实存在这个.h头文件
- 在user header search path 中添加各种路径,并且设置为递归搜索
- clean 并重启工程
- command + shift + G,清除DerivedData文件夹中的数据
最后,对比pod update 前后工程发生的变化,发现.xcodeproj文件有一些修改,怀疑是pod更新后,pod 对工程进行了自动配置,但是这个自动配置可能存在问题。
然后抱着侥幸的心理,尝试修改podfile中那个出问题的依赖库的版本号,然后pod update更新依赖库。奇迹发生了!是的,在经过各种配置之后编译还是失败的情况下,轻轻松松的修改一下依赖库的版本号,然后pod update 竟然解决了问题!尝试是不抱希望的,但是结果是让人意外。这个问题只能作为记录,至于为什么?还要打一个问号,有待日后弄清原委。
文/VV木公子(简书作者)
PS:如非特别说明,所有文章均为原创作品,著作权归作者所有,转载请联系作者获得授权,并注明出处!
如果您是iOS开发者,或者对本篇文章感兴趣,请关注本人,后续会更新更多相关文章!敬请期待!