Xcode9.2出现linker command failed错误求助(Swift3.2+CocoaPods)
解决Xcode9.2 + Swift3.2下CocoaPods链接错误问题
我来帮你排查这个linker command failed with exit code 1的问题,结合你使用的环境和CorePlot依赖,试试下面这些针对性的解决方案:
1. 彻底重新集成Pods
有时候Pods的安装缓存或者集成状态会出问题,彻底重置一下往往能解决:
- 先关闭Xcode,打开终端进入你的项目根目录
- 执行命令彻底移除现有Pods集成:
pod deintegrate - 清理Pods缓存:
pod clean - 最后重新安装Pods:
pod install - 注意!之后一定要打开项目的
.xcworkspace文件,不要再打开旧的.xcodeproj,否则会丢失Pods的配置
2. 检查链接器标志配置
CorePlot是Objective-C编写的库,需要确保Xcode的链接器配置正确:
- 打开项目的Build Settings,搜索
Other Linker Flags - 确认里面包含
-ObjC这个标志,如果没有的话手动添加;同时要确保列表里有$(inherited),这个会自动继承Pods的配置,不能漏掉
3. 指定兼容的CorePlot版本
不同版本的CorePlot对Swift和Xcode的兼容性不同,你可以试试指定一个明确的兼容版本:
- 修改你的Podfile,把
pod 'CorePlot'改成pod 'CorePlot', '~> 2.2'(这个版本对Swift3.2和Xcode9.2兼容性较好) - 然后在终端执行
pod update CorePlot更新依赖
4. 检查Build Phases配置
有时候Pods自动添加的依赖会丢失,手动确认一下:
- 进入项目的Build Phases,查看
Link Binary With Libraries列表,确认CorePlot.framework已经被添加进去 - 同时检查
Copy Bundle Resources里有没有重复的资源文件(比如CorePlot相关的bundle),重复的资源也可能导致链接错误,如果有就删掉重复项
5. 重置Xcode全局缓存
除了删除Derived Data,Xcode的全局缓存也可能出问题:
- 关闭Xcode,在终端执行:
rm -rf ~/Library/Caches/com.apple.dt.Xcode - 重启Xcode后再重新编译项目
内容的提问来源于stack exchange,提问作者Vadlapalli Masthan
相关产品推荐
相关产品推荐

