更新到10.12.1安装cocoapods

作者: Ge__ | 来源:发表于2016-12-13 11:20 被阅读510次

    16-12-21更新


    对以前项目进行pod install --verbose --no-repo-update
    然后编译运行,报出如下错误:

    ld: library not found for -lPods clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    这个错误比较常见,一般是因为文件重复,也可能是其他原因。这里是因为.a文件重复。解决如下:

    target>Build Phases>Link Binary With Librasies
    

    看这里是否存在两个libPods,以前的是这个libPods.a,使用新的cocoapods生成的是libPods-XXX.a.然后删除老的.a就好了。。
    这是我删除之后的样子。

    删除之后.png

    然后clean之后run一下,是不是好了?


    把更新记录收集一下。

    阅前需知:

    1、我是将系统从10.10.5更新成10.12.1,跨度有点大。。状况太多。。
    2、我对Podfile的使用不是太熟,基本都是常规用法,不确定是从哪个版本开始要这么用来着。。我是从0.39.01.1.1
    3、因为这是个更新过程记录,前面会有我踩的坑,如果参考的话,最好看完,避免按照我的情况再踩一下。。
    4、问题的处理基本都是看错误信息,一看就懂的直接处理,不懂的就搜索(所以说搜索是个好东西),搜的东西太多,所以参考的链接就不放了。。

    来来,开始。

    先检查gem的安装。

    gem之前可以检查一下rvm

    rvm -v
    rvm 1.25.28 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
    

    以前在哪里看过,好像gem的安装与rvm的版本有关。具体忘记了。。我的是这个。然后我也没管,应该没太大影响。。你可以忽略。。

    检查gem sources

    gem sources -l //显示当前的gem源。
    

    默认应该是这个,我的是之前装cocoapods的之后改成taobao的了

    *** CURRENT SOURCES ***
    
    https://rubygems.org/
    

    然后删除并添加国内可以使用的gem

    gem sources --remove https://rubygems.org/  
    或者 gem sources -r url
    

    删除后添加新的gem

    gem sources -a http://rubygems-china.oss.aliyuncs.com
    //这是个新的gem源
    

    还有一个在维护的 https://gems.ruby-china.org/

    之前有https://ruby.taobao.org 好像不维护了(据说),不过我没换,好像现在还能用。。

    确定gem源没有问题之后,进行升级。。

        sudo gem install cocoapods //以前都是这么用的。。
        
    

    会出现下面的错误:

    ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/xcodeproj
    

    查了下,苹果系统升级 OS X EL Capitan 后会出现的插件错误,现在用下面这句

    sudo gem install -n /usr/local/bin cocoapods
    

    按他说的弄,安装成功后

    pod setup
    

    之后可能需要很久时间。然后出现

    Setting up CocoaPods master repo
    Performing a deep fetch of the `master` specs repo to improve future performance
    [!] /usr/bin/git -C /Users/Pro/.cocoapods/repos/master fetch --unshallow
    
    error: RPC failed; curl 56 SSLRead() return error -36
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed
    

    等了半天白等了。。

    然后网上查到的结果说,远程终端误认为操作停止了.这就很尴尬了。。

    分析原因说:一种是Mac待机了,然后下载失败了。。

    我的情况属于他说的第二种。。

    请求超时而失败, 这个是因为下载请求在一定的时间内,没有得到响应,造成远程终端中断下载。

    来,看看怎么解决。

    cd /etc/ssh    //进入ssh
    
    sudo vi ssh_config     //编辑ssh_config
    

    按i进入编辑模式,直接到最后一行,加入。

    ServerAliveInterval 30      //设置超时时间30s
    

    OK了之后,点击esc,然后:wq保存之前编辑的。。

    以上设置超时时间,不晓得到底有没有用。。不过我觉得下面很重要,因为这个真是在下东西。。

    git clone https://git.coding.Net/CocoaPods/Specs.git ~/.cocoapods/repos/master
    

    这个是走的国内的镜像,在coding上的。比github的快。。反正这样看的见,比较直观。。

    如果出现

    fatal: destination path '/Users/XXX/.cocoapods/repos/master' already exists and is not an empty directory.
    
    

    好吧,人家说的很明白,删了就好了。。

    删除命令用这个

    sudo rm -rf ~/.cocoapods/
    

    好了之后就继续执行上一句。。然后你就看到了。。

    Cloning into '/Users/XXX/.cocoapods/repos/master'...
    remote: Counting objects: 955157, done.
    remote: Compressing objects: 100% (419819/419819), done.
    remote: Total 955157 (delta 447722), reused 954747 (delta 447312)
    Receiving objects: 100% (955157/955157), 355.21 MiB | 433.00 KiB/s, done.
    Resolving deltas: 100% (447722/447722), done.
    
    

    是不是终于看到下载东西了,要喜极而泣了。。这个过程也比较久,但是看到百分之多少的在涨,感觉比看不到强很多。。

    最后完成了的时候,再次使用

        pod setup
    

    然后就是等待了。。这次不再是遥遥无期了。。然后他会哗啦啦出来一堆东西,应该是下载什么之类的,不用管,没意外的话,最后你会看到一行绿字。我的是这样的。

    CocoaPods 1.2.0.beta.1 is available.
    To update use: `sudo gem install cocoapods --pre`
    [!] This is a test version we'd love you to try.
    
    For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.2.0.beta.1
    
    Setup completed
    

    这样就OK了。来,试一下。。进入项目路径

    pod install --verbose --no-repo-update
    

    然后。。😭😭

    [!] Invalid `Podfile` file: The target `Pods` already has a platform set..
    
     #  from /Users/pro/Desktop/企金融/Podfile:5
     #  -------------------------------------------
     #  
     >  platform :ios, '7.0'
     #  pod 'Masonry'
     #  -------------------------------------------
    

    下面还有一堆,心累就不贴了。。

    这说的是我的Podfile文件有问题,我以前就是这么用的啊啊啊。。
    以前是这么用的。。

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '7.0'
    pod 'AFNetworking', '~> 2.6'
    
    platform :ios, '7.0'
    pod 'Masonry'
    
    platform :ios,'7.0'
    pod 'SVProgressHUD','~> 1.1.3'
    ...
    

    看意思是 我的platform :ios,'7.0'写多了。。删了去。。

    然后继续。

    Preparing
    
    Analyzing dependencies
    [!] The dependency `AFNetworking (~> 2.6)` is not used in any concrete target.
    ...
    

    好像是因为没有指定target的原因。

    改成这个样子

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '7.0'
    
    target 'YourTarget' do
       pod 'AFNetworking'
    end
    

    然后再试。

    好像有点成功的样子。。然后到ReactiveCocoa的时候卡了好久。。最后来了个这。。

    error: RPC failed; curl 56 SSLRead() return error -9806
    fatal: The remote end hung up unexpectedly
    

    查了查,说是网络问题,然后不用管,再来一次。。

    终于看到了。

    -> Pod installation complete! There are 11 dependencies from the Podfile and 11 total pods installed.
    

    大功告成。。

    文末补充两个查到的,可能用的到的东西。

    1、针对安装多个xcode的。错误信息没记录。。安装多个的,可以执行一下,也不多什么。。记得Xcode.app根据实际情况修改。

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
    

    2、在执行了pod setup之后,会出现Setting up CocoaPods master repo,然后会卡很久,其实他在下载东西。要是想知道下载了多少,可以用下面的。

    cd ~/.cocoapods
    
    du -sh *
    

    du -sh *linux下当前查看文件夹大小的。以后在别的地方也用得到。。

    希望对你们有帮助。。

    相关文章

      网友评论

        本文标题:更新到10.12.1安装cocoapods

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