大部分的项目会选择使用CocoaPods来管理第三方库,pods的使用确实方便,但是各类问题也是层出不穷.
最近对项目结构做了些修改,更新后编译就出现了ld: library not found for -lXXX 的情况
谷歌后整理了以下几类解决方案:
1 :点击XCode工程文件,在Build Phases中查看“Link binary With Libraries”
如果不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。
说明这些被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。
这种情况下,右键点击红色条目,选择“Reveal in Project Navigator”,
此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。
2 :在工程的Target中选中要执行编译的某个target,然后“get info”,打开Build设置页面,在“Library Search Path”中添加缺失链接库的所在文件夹的路径。
3:关闭Xcode,在控制台打开到工程目录,用pod install 命令重新安装,成功后再打开Xcode编译项目。
但是以上三类方法对我问题的解决均无效,后仔细思考,想出第四种解决方案
4: 所有问题的源头应该就是CocoaPods的管理问题,遂删除.xcworkspace可执行文件和Pods文件夹,再重新pod install (其实我更倾向于pod install --verbose --no-repo-update),重新运行,问题解决!