一、Cocoapods是什么?
Cocoapods是iOS第三方源码管理工具,帮助开发者在项目中集成需要的第三方源码。可以通过pod等命令安装和更新第三方源码,从而降低开发的时间及提高效率。
Cocoapods项目的源码在Github系统上。经过多年的发展,已经成为iOS项目开发常用第三源码管理工具。
假如项目中依赖16个第三方开源库。在没有使用Cocoapods时,需要进行如下步骤:
把这些第三方开源库的源代码文件复制到项目中,或者设置成git的submodule。
对于这些开源库通常需要依赖系统的一些framework,我需要手工地将这些framework分别增加到项目依赖中,比如通常情况下,一个网络库就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics,
zlib。
对于某些开源库,我还需要设置-licucore或者-fno-objc-arc等编译参数管理这些依赖包的更新。
很多的方式都是通过手动的方式,虽然不算体力活,但是没有什么技术含量而且还浪费时间。而通过Cocoapods管理就能解决上述的问题。
二、Cocoapods安装过程
Cocoapods的按照很简单,而且在Mac系统上也很简单。因为Mac自带Ruby,使用Ruby的gem命令进行安装。
查看Ruby来源,确保Ruby的可用。因为旧版的Ruby使用的是亚马逊提供的云服务,已经被墙了无法使用。必须指向taobao的Ruby。
1. 查看来源地址
gem sources –l如果是https://rubygems.org则需要修改成taobao的Ruby。修改方式如下:
先移除:gem sources --remove https://rubygems.org
重设置:gem sources -a https://ruby.taobao.org
查看Ruby是否设置源指向是否正确
gem sourecs -l正确的显示如下:
https://ruby.taibao.org/
只要出现这个就说明设置正确了。
2. 更新Ruby为最新版本
Terminal执行如下命令:sudo gem update --system
成功后会提示:Latest version currentlyinstalled.Aborting.
3. 安装Cocoapods
在Terminal执行命令:
sudo gem install cocoapods
如果报以下错误:
ERROR: While executing gem Operationnot permitted - /usr/bin/xcodeproj
解决方案1:
执行下面的命令并重启
sudo nvram boot-args="rootless=0"
sudo reboot
重启之后,执行这个命令检查
sudo gem install cocoapods -V
如果依旧有错误,使用第二个方案
解决方案2:
sudo gem install -n /usr/local/bincocoapods
pod setup
还有一点需要注意,pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是Cocoapods在将它的信息下载到~/.cocoapods目录下,如果你等太久,可以试着cd到那个目录,用du-sh *来查看下载进度。安装成功后,你会看到:Setupcompleted
三、Cocoapods的使用
使用Terminal创建一个文件,或者使用其他方式新建一个名为Podfile的文件。并放到你的工程根目录下。
Podfile文件内容的格式如下(其他格式执行不会成功):
platform :ios, '8.0' #(注明你的开发平台以及版本,'8.0'忽略不写即为最新版本)
pod 'AFNetworking', '~> 2.5.3' #('~>2.5.3'为版本号,忽略不写即为最新版本)
pod 'SDWebImage', '~> 3.7.2'#('~> 3.7.2'为版本号,忽略不写即为最新版本)
然后使用Terminal进入工程所在的根目录(工程根目录)中执行如下命令:
pod install
那么在Podfile文件中的第三方开放源码就会下载下来,并且配置在你的工程目录中。
以后需要使用Cocoapods生成的.xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
每次更改了Podfile文件,都需要重新执行一次pod
update命令
四、Cocoapods的常用命令使用
1. 查找是否存在某个第三方源码,或者版本。命令都在Terminal下执行。
pod search SDWebImage
回车就可以看见你搜索的源码和响应的版本号码,地址等信息。如下: