废弃第三方库导致的library not found for -lXXXXX(linker command failed ) 完美解决方法

编译错误是让人头疼错误,它没有指向具体代码而是指向第三方库的编译错误。有的库可能我们以前使用,现在不再使用,把它删除了或通过Podfile文件修改重新更新了,但是它还是给我们捣乱。通常是对它没有删除干净引起了。通常有四种解决方案:

方法一:

点击 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries” ,如果不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。
说明这些被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。
这种情况下,右键点击红色条目,选择 “Reveal in Project Navigator”,
此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。如果这个库你不想用了,删除就可以了。

方法二:

在工程的 Target 中选中要执行编译的某个target, 然后 “get info”,打开 Build 设置页面,在 “ Library Search Path” 中添加缺失链接库的所在文件夹的路径。

方法三:

关闭Xcode,在控制台打开到工程目录,用pod install 命令重新安装,成功后再打开Xcode编译项目。这个是个人组件版本更新,你的本地私有库还是使用的原来版本。

方法四:

检查在工程的 Target 中选中要执行编译的某个target, 打开 Build 设置页面,查找Other Linker Flags.看你使用还有-l”FBRetainCycleDetector”或-l”MLeaksFinder”这些你删除的库。
我的编译不通过就是通过方法四解决的。测试环境需要使用无侵入式内存泄漏第三方库”MLeaksFinder”,它依赖另一个库”FBRetainCycleDetector”。
正式环境我们不用内存检测库”MLeaksFinder”,通过修改Podfile文件(#pod ‘MLeaksFinder’,’0.2.1’),让后使用命令pod update –verbose –no-repo-update来删除这个库。当更新完成,打包时报这个错误。

你可能感兴趣的:(废弃第三方库导致的library not found for -lXXXXX(linker command failed ) 完美解决方法)