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
就好了。。
这是我删除之后的样子。
然后clean
之后run
一下,是不是好了?
把更新记录收集一下。
阅前需知:
1、我是将系统从
10.10.5
更新成10.12.1
,跨度有点大。。状况太多。。
2、我对Podfile
的使用不是太熟,基本都是常规用法,不确定是从哪个版本开始要这么用来着。。我是从0.39.0
到1.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
下当前查看文件夹大小的。以后在别的地方也用得到。。
希望对你们有帮助。。
网友评论