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,最新版本截图如下:
通过刚才想到的
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.
更新完成之后:
Search的范围
通过pod search我们可以查看到第三方库的版本,本地的第三方库和网上不同步,搜索的结果为什么只是在本地,而不是查找网上的结果,那就验证search是不是只查找本地在.cocoapods下的路径截图:
如果我们删除红色标注的三个版本会不是查不到这三个版本?
兴趣探讨
上图中删除了AFNetWorking的是三个测试版本,无法查出来,当然也无法更新,也就是你添加的版本本地应该是存在的,不然无法更新.
我们开发中经常会因为慢,只下载代码,不更新本地依赖库,其实是一个不太好的习惯,有可能就造成本地版本库的第三方版本低CocoaPods服务端的版本:
pod install xx --verbose --no-repo-update
如果我们删除了AFNetWorking,会怎么样呢?
一切都需要从头再来,你需要先uninstall存在的CocoaPods,然后重复升级版本库的的步骤,我删除试了一下,重新开始的感觉不是那么美妙~
问题探讨完了,该睡觉了,看文章也可以早点休息了~