CocoaPods的使用
CocoaPods简介
在你iOS应用开发过程中,会经常使用到很多第三方开源类库,比如AFNetWorking,MJRefresh等等。当你想使用某个类库时,这个类库可能又用到其他类库,所以你必须得另外下载其他类库,而其他类库又可能用到其他类库。这也许是比较特殊的情况,但是可能使一开始的导入工作就很麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。而CocoaPods,只需要一行命令就可以解决上述的这些问题。
CocoaPods是iOS最常用最有名的类库管理工具。目前绝大部分有名的开源类库,都支持CocoaPods。作为iOS程序员,掌握CocoaPods的使用是必不可少的基本技能了。
CocoaPods安装
目前网络上已经有很多CocoaPods安装的教程了,写起来篇幅太长了,懒。哈哈哈。请自行百度或Google。
CocoaPods的使用
CocoaPods的使用分为几种情况
- 原本没有使用CocoaPods的项目,添加CocoaPods
- 原本已有使用CocoaPods的项目添加一个新的类库,或者更新当前已有的类库
1、原本没有使用CocoaPods的项目,添加CocoaPods
1)XCode File - New - Project.. 新建一个Demo:TestCocoaPodsDemo
2)然后打开终端:Terminal.app
3)cd 到刚刚创建的TestCocoaPodsDemo目录下,如果是存在的项目,那么cd 到xxx.xcodeproj 的同级目录
4)生成在Podfile文件
终端输入以下指令
pod init
之后,在finder中已经生成了一个Podfile文件了

5)找到Podfile文件,直接双击进入,其实就是TextEdit.app打开编辑,里面的结构如下:
# Uncomment the next line to define a global platform for your project
# platform :ios, '8.0'
target 'TestCocoaPodsDemo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for TestCocoaPodsDemo
end
6)在Pods for TestCocoaPodsDemo 与 end 之间添加想要导入的类库
7)CocoaPods 中类库是否存在,以及类库的版本号
如:AFNetworking,打开终端:Terminal.app,输入pod search AFNetworking
得到如下结果:
# Uncomment the next line to define a global platform for your project
# platform :ios, '8.0'
target 'TestCocoaPodsDemo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for TestCocoaPodsDemo
pod 'AFNetworking', '~> 3.2.1'
end
复制终端的到的结果第二行:pod 'AFNetworking', '~> 3.2.1' 到Podfile文件中

8)修改完Podfile文件后,在终端中输入指令
pod install

成功之后,我们的Finder目录下,会添加一些文件:
- Podfile.lock
- Pods文件夹
- TestCocoaPodsDemo.xcworkspace

此时,关闭原本打开的TestCocoaPodsDemo.xcodeproj 项目工程,然后双击TestCocoaPodsDemo.xcworkspace 打开install了CocoaPods的工程,可以看到我们xcode中的文件结构如下:

可以看到,项目结构中在原有的基础上多了一个Pods工程。其中里面的Pods文件夹里面包含了我们需要导入的第三方类库。
注意:在CocoaPods工程中,打开工程文件不再是双击打开xxx.xcodeproj文件了 ,而是双击打开xxx.xcworkspace文件。
2、原本已有使用CocoaPods的项目添加一个新的类库,或者更新当前类库的版本号
比如我们还想在TestCocoaPodsDemo 中添加高德地图的SDK,在高德地图的官网中,我们可以看到高德地图的Podfile为:
pod 'AMap2DMap' #2D地图SDK
pod 'AMapSearch' #搜索功能
我们也可以在通过上一节中介绍的pod search xxx的方式,或的类库的信息已经版本号,直接复制进我们的Podfile 文件中去

复制其中的 pod 'AMap2DMap', '~> 5.6.1'

复制其中的 pod 'AMapSearch', '~> 6.5.0'
添加进去之后,我们得到最新的Podfile文件如下:
# Uncomment the next line to define a global platform for your project
# platform :ios, '8.0'
target 'TestCocoaPodsDemo' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
# Pods for TestCocoaPodsDemo
pod 'AFNetworking', '~> 3.2.1'
pod 'AMap2DMap', '~> 5.6.1'
pod 'AMapSearch', '~> 6.5.0'
end
接着在终端中执行
$pod install
如果还想同时将其他已有的类库更新为最新的版本,可以执行以下指令:
pod install --repo-update

如果只是想要更新已有的类库,可以直接执行以下指令更新
pod repo update
pod install
其中pod repo update指令是更新所有本地pod库中的库
最后得到的文件目录为:

此处还有一点是:
我们只导入了
pod 'AMap2DMap', '~> 5.6.1'
pod 'AMapSearch', '~> 6.5.0'
但是我们的到的结果还有一个AMapFoudation,这就是我们开篇时说的。CocoaPods会自动帮我们关联我们需要关联的类库中的关联(这就有点拗口,哈哈哈)。
最后
关于CocoaPods的相关只是就先写到这里,如果有哪里写的不正确的地方,还望各位大佬指出。