iOS-Cocoapods

Cocoapods是一个用于管理项目依赖的第三方库的开源项目,源码在Github。利用Cocoapods,可以自动管理第三库的源码下载和更新,添加第三方库的依赖库,以及设置编译参数,例如-ObjC, -fno-objc-arc等。

安装

Cocoapods可以通过Mac自带的RubyGems进行安装,打开命令行,输入:

1
2
3
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.org/
gem sources -l

看到如下输出,即已经安装源成功:

1
2
3
*** CURRENT SOURCES ***

https://gems.ruby-china.org/

然后,安装Cocoapods,输入:

1
2
sudo gem install cocoapods
pod install

没什么意外的话,就能看到成功了:

1
Setup completed

使用

首先,执行命令:

1
2
cd 项目根目录
pod init

Cocoapods会在根目录自动创建一个文件,名为Podfile,并且在里面写明系统平台和版本,项目名称等,格式如下:

1
2
3
4
5
6
7
8
9
10
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'TestCocoaPods' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!

# Pods for TestCocoaPods

end

按照提示,去掉注释,加入第三库的名称以及版本号,修改如下:

1
2
3
4
5
6
platform :ios, '9.0'

target 'TestCocoaPods' do
# use_frameworks!
pod 'SDWebImage', '~> 4.0.0-beta2'
end

注意,版本号不写的话,默认为最新版本。

然后执行命令:

1
pod install

完成后,会发现项目目录下,Coaoapods总共创建了三个文件和一个文件夹:

  • Podfile文件:上面讲到的,申明开发平台、版本以及第三方库;
  • Podfile.lock文件:用于跟踪和锁定依赖库的版本,在适用版本控制工具(Git、Svn)时,应该提交该文件,来保证依赖库版本的一致性;
  • xcworkspace文件:Coaoapods创建的新工程文件,包含了原来的项目和Pods项目,后面要用这个工程文件进行开发;
  • Pods文件夹:包含了新创建的Pods项目,以及下载的第三方库。

最后,打开xcworkspace文件进行开发即可。

查询

要查询一个第三方库是否支持Cocoapods,以及版本号列表,可以用命令:

1
pod search SDWebImage

出来的结果如下:

Cocoapods-Search

更新

对于第三方库的更新,如果是删除或者添加新的第三方库,使用命令:

1
pod install

如果是更新第三方库,则使用命令:

1
pod update [第三方库名]

异常

如果在项目编译过程中出现异常:

1
2
diff: ../Pods/Manifest.lock: No such file or directory
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

解决方式如下:

1
2
3
cd 项目目录
rm -rf 项目名.xcworkspace
pod install