从事iOS开发的小伙伴,应该会听说过CocoaPods,它的使用可以为iOS开发以及维护提升效率。
什么事CocoaPods?
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 28 thousand libraries and is used in over 1.7 million apps. CocoaPods can help you scale your projects elegantly
-cocoapods.org
从官网的说明,CocoaPods是Objective-C和Swift工程的依赖包管理工具。类似于Node.js的npm,Java的Maven,或者mac系统的HomeBrew或者Red Hat Linux的 yum等。
为啥要用它?
- 给项目添加依赖库更方便
- 对于依赖的更新更便捷
如果使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
想象一下,如果没有Pod,要把项目依赖的十几个甚至几十个依赖挨个下载、拖进工程。如果依赖有升级或更新需要重新下载、再覆盖工程原有的,要是第三方lib之间还存在相互依赖的话...
Pod 的安装
Pod 由Ruby构建,OS X系统默认自带Ruby,所以可以使用系统自带的Ruby安装pod
$ sudo gem install cocoapods
以上是官网上的安装说明,看起来很简单对吧✧(≖ ◡ ≖✿)~
但是,在天朝你会发现,命令执行可能很慢,数小时可能都玩不了,因为我们的墙...我实在不知道Ruby这种东西为什么还要墙呢? 所以针对天朝的开发者,有一下解决方案:
1. 用梯子
2.使用淘宝镜像(淘宝已停用,改用ruby china)
//首先移除原有的镜像
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources --add https://gems.ruby-china.org/
淘宝镜像设置完成,验证一下:
$ gem sources -l
如果出现以下,说明镜像设置成功:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
切换淘宝镜像后,再 sudo gem install cocoapods就可以了
查找第三方类库
项目在导入第三方类库前,最好在pod中搜索一下pod是否收录了此类库
例如搜索AFNetworking
pod search AFNetworking
使用pod导入项目
首先在工程根目录新建一个名为Podfile的文件,格式如下:
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod 'AFNetworking', '~> 2.6'
pod 'ORStackView', '~> 3.0'
pod 'SwiftyJSON', '~> 2.3'
end
然后执行
pod install
注意,** 如果你是使用Swift开发,一定不要忘记Podfile中的 use_frameworks!,否则会出错。**原因是大概是因为Swift的运行时库没有包含在iOS 框架中,这里不做赘述。
使用pod新建Xcode项目
上面介绍了是在项目中加入pod的方法,通常在项目建立时就使用pod,方法如下:
- 首先使用Xcode新建一个项目
- 然后Terminal cd至项目根目录
- 运行 $ pod init
- 打开 PodFile 然后编辑,注意平台类型,加入需要的类库,保存
- 运行 $ pod install
[使用pod后,打开项目时,要从.xcworkspace打开]
pod install和 pod update
注意:pod install 会按照Podfile中的版本好导入类库,如果file中的版本不是最新的,那么可能会出现错误,这时候就要使用 pod update 然后在 pod install了。
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。