美文网首页iOS开发iOS开发技术分享iOS Developer
CocoaPods使用第三方库报unrecognized sel

CocoaPods使用第三方库报unrecognized sel

作者: Yancy_90 | 来源:发表于2016-05-24 22:34 被阅读1245次

    今天把公司开发了半年多的工程加入了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

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

    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 sel

        本文链接:https://www.haomeiwen.com/subject/ufnzrttx.html