iOS开发-AFNetWorking 3.0在CocoaPods上的坑

AFNetWorking在10月份的时候发布了3.0测试版,在十二月份11号到十19号连续发布了3.0.0到3.0.4五个正式版本,不可谓不速度。本着学习的心态在测试项目中导入AFNetWorking,Podfile中命令如下:

source 'https://github.com/CocoaPods/Specs.git'
 platform :ios, '8.0'
 pod 'AFNetworking', '~> 3.0'

预想的结果是喝口水,接下来开始撸代码的结果,事与愿违,报错了,结果如下:

[!] Unable to satisfy the following requirements:  
- AFNetworking (~> 3.0)` required by `Podfile`

如果你遇到过这个问题或者你知道这个问题的解决方案,那么你可以去喝口水忽略我,头一次遇到pod安装项目出问题的,一头雾水,踩了坑就要慢慢的爬起来。以下内容算是解决问题的一个思考过程,与大家共勉。

降低版本

如果AFNetWorkinga版本太高,那么就降版本,设置为2.6.0,稍等一会就安装成功,这个时候反而有点茫然了,为什么2.6.0可以,3.0不可以?难道3.0比较特殊?

AFNetWorking3.0安装要求

>CocoaPods 0.39.0+ is required to build AFNetworking 3.0.0+.
>Xcode 7+ is required.

通过pod --version查看之后版本确实是0.39.0,同样的很不理解,在网上搜索一遍无果,这个时候就在想是不是AFNetWorking更新太快,没有在CocoaPods上发布,事实证明我是错的,但是确想到了一个命令~

版本查看

通过CocoaPods上的AFNetWorking,最新版本截图如下:

版本截图.png

通过刚才想到的pod search AFNetWorking搜索一下很意外,发现最高的版本是2.6.0,简单点说就是本地的第三库的数据和远端的数据不同步,导致CocoaPods本地的版本库低于远端这里面其实存在一个问题,先来解决版本不同步的问题

升级CocoaPods本地库

升级基本上算是重走了CocoaPods安装的路子,如果已经默认的是淘宝的ruby源,直接进行1,5,6即可:

 $ sudo gem update --system // 先更新gem
 $ gem sources --remove https://rubygems.org/
 $ gem sources -a https://ruby.taobao.org/
 $ gem sources -l //查看ruby地址
 $ sudo gem install cocoapods // 安装cocoapods
 $ pod setup

这里面需要注意的一个问题是最后一步pod setup,这一步会稍微有点慢:

Creates a directory at ~/.cocoapods/repos
which will hold your spec-repos. This is where it will create a clone of the public master
spec-repo from:

https://github.com/CocoaPods/Specs

If the clone already exists, it will ensure that it is up-to-date.

更新完成之后:


版本查看.png

Search的范围

通过pod search我们可以查看到第三方库的版本,本地的第三方库和网上不同步,搜索的结果为什么只是在本地,而不是查找网上的结果,那就验证search是不是只查找本地在.cocoapods下的路径截图:


本地仓库.png

如果我们删除红色标注的三个版本会不是查不到这三个版本?

删除之后的结果.png

兴趣探讨

上图中删除了AFNetWorking的是三个测试版本,无法查出来,当然也无法更新,也就是你添加的版本本地应该是存在的,不然无法更新.
我们开发中经常会因为慢,只下载代码,不更新本地依赖库,其实是一个不太好的习惯,有可能就造成本地版本库的第三方版本低CocoaPods服务端的版本:

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

如果我们删除了AFNetWorking,会怎么样呢?
一切都需要从头再来,你需要先uninstall存在的CocoaPods,然后重复升级版本库的的步骤,我删除试了一下,重新开始的感觉不是那么美妙~

问题探讨完了,该睡觉了,看文章也可以早点休息了~

你可能感兴趣的:(iOS开发-AFNetWorking 3.0在CocoaPods上的坑)