Swift3集成AFNetworking、SwiftyJSON后编译报错:Linker command failed
解决AFNetworking和SwiftyJSON导入后编译链接错误(Linker command failed with exit code 1)
你遇到的这个链接错误,大概率是手动添加框架和CocoaPods的自动配置冲突导致的——毕竟CocoaPods执行pod install后已经帮你处理好所有依赖的链接和导入逻辑了,手动操作反而会弄巧成拙。试试下面的解决步骤:
移除手动添加的框架:打开Xcode,进入你的target的
Linked Frameworks and Libraries面板,删掉里面的AFNetworking和SwiftyJSON框架。重复链接是这类错误最常见的诱因,CocoaPods已经自动完成了依赖的配置工作。彻底清理缓存并重新集成CocoaPods:
- 完全关闭Xcode
- 删除Xcode的Derived Data缓存:可以在终端执行命令
rm -rf ~/Library/Developer/Xcode/DerivedData,或者打开Xcode的Preferences->Locations,找到Derived Data的路径手动删除对应文件夹 - 到项目根目录执行
pod deintegrate,这个命令会彻底移除CocoaPods在项目里的所有集成配置 - 重新执行
pod install,等待依赖安装完成后,打开生成的.xcworkspace文件
确认打开的是正确的项目文件:务必确保打开的是
项目名.xcworkspace,而不是项目名.xcodeproj——后者不会加载CocoaPods的依赖配置,必然会导致链接错误。检查Build Settings的链接标记:进入target的
Build Settings,搜索Other Linker Flags,确认里面包含$(inherited)这个标记。CocoaPods需要这个参数来导入所有依赖的链接配置,如果这个标记被删除或覆盖,就会出现链接失败的问题。
如果做完这些步骤仍有问题,可以再确认下Podfile里的use_frameworks!位置是否正确(你的Podfile里已经写对了,SwiftyJSON和AFNetworking都需要这个配置支持),也可以尝试重启电脑后再重新操作一遍,有时候系统缓存也会干扰依赖的正常加载。
内容的提问来源于stack exchange,提问作者user8797533
相关产品推荐
相关产品推荐

