iOS程序猿首页投稿(暂停使用,暂停投稿)Tools

更新到10.12.1安装cocoapods

2016-12-13  本文已影响510人  Ge__

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下当前查看文件夹大小的。以后在别的地方也用得到。。

希望对你们有帮助。。

上一篇下一篇

猜你喜欢

热点阅读