CocoaPods的官网:https://guides.cocoapods.org
一.什么是CocoaPods
这两年iOS开发的发展,不用我给大家多说了,可以说是十分迅猛,每种语言在发展到一定的阶段都会出现一些相应的依赖管理工具,而CocoaPods就是iOS的依赖管理工具
CocoaPods的源码在GitHUB上管理,该项目起于2011年8月12日,经过多年的发展,现在已经成为iOS实际开发中标准的依赖工具.因为在开发中总是不可避免的用到一些第三方开源库,CocoaPods的出现使我们在使用三方开源库时能节约不少的时间,提升了开发者的工作效率.
二.为什么要用到CocoaPods
-
大家都知道三方开源库最普通的导入方式是手动添加,有的三方库甚至要手动导入N个文件,而且每个文件都要手动导入,其中则容易出现纰漏.下面是普通导入方法的大致步骤:
1.把开源库的源代码复制到项目当中.
2.要添加上述所需的动态库和框架.
3.设置-ObjC,-fno-objc-arc等参数.(解决汇编,arc/mrc之间冲突问题).
4.管理他们的更新.
但是当我们使用了CocoaPods以后,所有的三方开源库就都被放到一个Podfile文件中.当需要添加三方开源库的时候就pod install,更新的时候就pod update,操作简单,一目了然...
三.CocoaPods的原理
- CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
四.CocoaPods的安装
CocoaPods可以方便地通过Mac自带的RubyGems安装。
打开Terminal(Mac电脑自带的终端),然后按照以下提示操作即可:
1.设置ruby的软件源:
-
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
gem sources -l (查看当前ruby的源)
gem sources --remove https://rubygems.org/ (移除当前ruby的源)
gem sources -a https://ruby.taobao.org/ (设置当前ruby的源为我天朝的)
gem sources -l (再次查看当前ruby的源)
如果Terminal输出:
*** CURRENT SOURCES ***
就证明ruby的软件源已经设置OK了。
2.设置gem为最新版本:
-
如果gem太老,可以尝试用如下命令升级gem:
sudo gem update --system
升级成功后会提示: Latest version currently installed. Aborting.
3.执行安装CocoaPods命令:
-
注意:OS X 10.11 升级,虽然官方声称只是一个小的升级,但对于开发者而言,cocoapods需要重新安装,但按照以前的安装方式,在Terminal输入以下命令:
sudo gem install cocoapods
如果报以下错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
解决方案1:
执行下面的命令并重启
sudo nvram boot-args="rootless=0"
sudo reboot
重启之后, 执行这个命令检查
sudo gem install cocoapods -V
ps : 如果依旧有错误,使用第二个方案
解决方案2:
sudo gem install -n /usr/local/bin cocoapods
pod setup
还有一点需要注意,pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。
安装成功后,你会看到:Setup completed
五、Cocoapods的使用
-
随便以一种方式新建一个名为Podfile的文件放到你的工程根目录下(不能写成别的名字,也可以自己在工程根目录里面直接新建)
Podfile文件内容的格式应该如下:
platform :ios, '8.0' #(注明你的开发平台以及版本,'8.0'忽略不写即为最新版本)
pod 'AFNetworking', '~> 2.5.3' #('~> 2.5.3'为版本号,忽略不写即为最新版本)
pod 'SDWebImage', '~> 3.7.2'
然后在Terminal进入工程所在的根目录(工程根目录)中执行 :
pod install
-
这样,AFNetworking和SDWebImage就已经下载完成并且设置好了编译参数和依赖,以后使用的时候切记如下两点:
1.从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新执行一次pod update命令