CocoaPods使用第三方库报unrecognized selector sent to instance错误

今天把公司开发了半年多的工程加入了Cocoapods来管理第三方类库,过程很顺利,配置好podfile后执行pod install,第三方类库就很轻松的导入了项目中,写代码的时候也没有任何问题,但是运行起来后问题就来了。
  在使用Cocoapods之前,项目中的第三方都是手动导入的,加入Cocoapods后我首先把原来项目中的Masonry删掉了,然后通过pod来导入,导入后编译没有任何问题,但是运行后立刻Crash,错误是UI控件找不到Masonry中的方法unrecognized selector sent to instance xxxxxx,而方法确实是存在的。


** 后来找到的解决方法是:**

  • 1、打开工程所在文件夹,找到.xcodeproj文件,右键选择【显示包内容】,找到project.pbxproj文件
  • 2、打开project.pbxproj文件,查找OTHER_LDFLAGS,把和这个相关的内容都删除
  • 4、重新编译并运行

** 在问题解决之前Other Linker Flages是这样显示的,跟未使用Cocoapods之前的配置是一样的 **


Error_Image.png

** 问题解决之后,是这样子的 **

CocoaPods使用第三方库报unrecognized selector sent to instance错误_第1张图片
Right_Image.png

然后导入所有的库都可以正常运行了
如果哪位大神知道原因,请在评论中告知,不胜感激


顺便附上Cocoapods的安装和使用的命令###


gem sources --remove https://rubygems.org/ // 移除源

gem sources -a https://ruby.taobao.org/ // 替换为淘宝源,详情请查看链接。

gem sources -l // 查看是否替换成功

sudo gem update --system // 升级ruby环境

sudo gem install cocoapods // 开始安装Cocoapods

pod --version // 查看Cocoapods版本,目前最新应该是1.0.1

pod search AFNetworking // 查找

pod repo update // 如果查找不到最新的第三方库版本,可以执行此命令更新本地pod仓库

pod install // 初始化Cocoapods

pod update // podfile文件修改后需要执行更新


2016-07-05更新

  • 执行pod update的时候每次都会默认升级CocoaPods的spec仓库,有时候会卡在 Analyzing dependencies 很长时间,非常耽误时间,这时候可以使用下面的命令执行update
    pod update --verbose --no-repo-update
    如果提示找不到库,说明spec仓库可能不是最新版本,则可去掉 --no-repo-update

  • CocoaPods升级之后到最新版本,podfile里的内容必须明确指出所用第三方库的target,否则会出现The dependency `xxx` is not used in any concrete target这样的错误。

target "TargetName" do
  pod ‘ReactiveCocoa‘, ‘2.1.8‘
  pod ‘SDWebImage‘, ‘3.6‘
end```

你可能感兴趣的:(CocoaPods使用第三方库报unrecognized selector sent to instance错误)