由于公司的项目不是很大,用到的第三方不是特别多,再加上之前安装CocoaPods出现了错误,没有安装成功,所以一直就没有用它。现在专门研究了一下它,把从安装到使用中遇到的问题详细的贴出来,希望能帮到你。 1.安装 在安装CocoaPods之前,首先要在本地安装好Ruby环境。下面介绍在Mac中安装好Ruby环境。(标注:我是安装在Mac OS X 10.11.4上 )
下面的使用说明中,带有 $ 打头的表示需要在控制台(终端)下面执行(不包括 $ 符号),复制到终端在控制台执行就可以了。
步骤1 - 安装 RVM
$ curl -L https://get.rvm.io | bash -s stable
期间可能会问你sudo管理员密码,以及自动通过homebrew安装依赖包,等待一段时间后就可以成功安装好 RVM。
$ source ~/.rvm/scripts/rvm
检查一下是否安装正确
$ rvm -v rvm 1.22.17 (stable) by Wayne E. Seguin, Michal Papis[https://rvm.io/]
步骤2 - 用 RVM 安装 Ruby 环境
列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装(下面以rvm 2.0.0版本的安装为例)
$ rvm install 2.0.0
同样继续等待漫长的下载,编译过程,完成以后,Ruby, Ruby Gems 就安装好了。
另附:
查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 1.9.2
步骤3 - 设置 Ruby 版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.0.0 --default
同样,也可以用其他版本号,前提是你有用 rvm install 安装过那个版本
这个时候你可以测试是否正确
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin13.0.0]
$ gem -v
2.1.6
这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的,替换方式如下:
$gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org
要想验证是否替换成功了,可以执行:
$ gem sources -l
正常的输出结果:
CURRENT SOURCES
http://ruby.taobao.org/
到这里就已经把Ruby环境成功的安装到了Mac OS X上,接下来就可以进行相应的开发使用了。
步骤4 - 安装cocoapods
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
4.10.11以上,上面的命令是不生效了,因为10.11把cocoapods直接干掉了
$ sudo gem install -n /usr/local/bin cocoapods
再加一句,完美解决
$ sudo xcode-select --switch /Applications/Xcode.app
在终端中输入如下命令来完成安装:(等待的时间不是一般的长啊,很长啊,大概有100M多点)
$ pod setup
如果安装失败,执行下面的:
$ pod repo remove master
$ pod setup
2.使用
1.0 搜索某个第三方库
$ pod search AFNetworking
2.0 打开xcode,新建一个工程或者使用旧工程都可以
$ cd (将你的工程拖到这里来,回车enter即可)
3.0 创建一个pod
file
$ touch Podfile
4.0 编辑profile
$ vim Podfile
输入 i 进入编辑模式,再编辑podfile
platform :ios, '7.0'
pod "AFNetworking", "2.5.0"
在编辑完后按 esc,然后按":",这个时候输入wq保存退出。
怎么编辑podfile呢?如下
pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘>2.0′ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>=2.0′ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘<2.0′ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<=2.0′ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
5.0 下载类库
$ pod install
6.0 使用类库
打开 CocoapodsSample.xcworkspace 工程,你会发现你已经导入第三方库了
#import "AFNetworking.h" 即可
7.0
更新已经存在的类库
$ pod update
3.常见问题解答
1.0 一直卡在Updating local specs repositories
pod install 被墙了,请大家换成pod install --verbose --no-repo-update
2.0 Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using
TextEdit, you should turn off smart quotes in your editor of choice.
不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。或者输入格式错误,没输入运行版本:$platform:ios, ‘9.0‘
3.0
使用cocoapods导入第三方类库后头文件没有代码提示
选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项,新增一个值"${SRCROOT}",并且选择\”Recursive\”
4.0
The dependency `AFNetworking (= 3.0)` is not used in any concrete target.
platform :ios,'7.0'
target '你的app的target名字' do
pod 'AFNetworking', '2.0'
pod 'SDWebImage', '3.7'
...
end