Xcode/cocoapods ld: library not found for -l问题

最近在维护一个老项目, 发现使用的AFNetworking已经太老了, 项目并没有使用cocoapods, 于是打算给项目集成一下cocoapods方便以后维护, 一顿常规操作

pod init
编辑podfile
pod install

run一下, 发现报了ld: library not found for -l<AFNetworking>的错误, 目前只集成了这一个Pod

解决方法

删除了原先build settings内几个键的所有值改为了$(inherited):

OTHER_LDFLAGS 对应Other Linker Flags
OTHER_CFLAGS 对应Other C Flags
LIBRARY_SEARCH_PATHS 对应 Library Search Paths
HEADER_SEARCH_PATHS 对应 Header Search Paths

原因

  • cocoapods会修改xcode的编译配置, 如何修改的呢, 通过Pods-yourpoject.debug.xcconfigPods-yourpoject.release.xcconfig这两个文件, xconfig格式文件也可以自己创建, 是Apple给用户准备的自定义配置文件
  • 在这里生效:


    image.png
  • Xcode build过程会优先使用这个xconfig格式文件的键值
  • 另外, target可以继承project的build settings的键值, 即通过$(inherited)
  • 由于我的项目之前没有这个关键字, 导致Library Search Paths没有继承cocoapods的项目配置, 出现了无法link library的问题

结论

一定要把cocopods的Pods-yourpoject.debug.xcconfigPods-yourpoject.release.xcconfig这两个文件传递到target中, 否则将会出现build错误的问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容