一、CocoaPods 简介
1. 什么是 CocoaPods
CocoaPods 是 iOS 的包管理工具。
2. 为什么要使用 CocoaPods
在开发 iOS 项目时,经常会使用第三方开源库,手动引入流程复杂,并且库之间还存在依赖关系,更增加了手动管理的难度。开源库如果升级了,你也想用最新版本,还需要重新手动导入,这大大增加了工作量。但用了 CocoaPods 后,安装和升级都只是一句命令的事情,让你可以专于业务本身。
二、CocoaPods 安装
1. 安装 Ruby
CocoaPods 基于 Ruby 语言开发而成,因此安装 CocoaPods 前需要安装 Ruby 环境。幸运的是 macOS 系统默认自带 Ruby 环境,如果没有请自行查找安装。检测是否安装 Ruby:
$ gem -v
3.0.3.1
安装则会提示当前 Ruby 版本。gem 介绍:gem 是一个管理 Ruby 库和程序的标准包,它通过 Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。
2. 更换 gem 源
因为国内网络的问题导致 gem 源间歇性中断,原因你懂的。因此我们需要更换 gem 源,使用国内的 gem 源 https://gems.ruby-china.com/。
第一步:移除默认的源
$ gem sources --remove https://rubygems.org/
第二步:指定国内的源
$ gem sources -a https://gems.ruby-china.com/
第三步:查看是否更换成功
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
如果是 https://gems.ruby-china.com/,则更换成功。
3. 安装 CocoaPods
终于开始安装 CocoaPods,说实话本人都快忘记是在写 CocoaPods 的教程了,囧!确认改成国内源后执行以下命令进行安装:
$ sudo gem install cocoapods
稍等片刻即可安装完成,输入以下命令检测是否安装成功:
$ pod --version
1.11.2
成功则会提示 CocoaPods 版本,到此安装已告一段落。
三、CocoaPods 使用实例
首先新建一个 iOS 工程 MyDemo,在该工程中演示 CocoaPods 的使用。
1. 创建 Podfile
进入工程的根目录,创建 Podfile 文件,创建完毕的目录如下图:
2. 编辑 Podfile
根据需要,我们可以在 Podfile 文件中写入我们需要的第三方库,这里以 AFNetworking 和 MJRefresh 为例,Podfile 内容如下:
platform :ios, '7.0'
pod 'AFNetworking', '~> 3.0'
pod 'MJRefresh','~> 3.1'
这段代码的意思是,当前类库支持的iOS最低版本是iOS 7.0, 要下载的两个类库的版本分别为 3.0、3.1。
3. pod install 导入第三方库
这时候,你就可以利用CocoPods下载AFNetworking和MJRefresh类库了。在终端中进入工程根目录,运行以下命令:
$ cd /Users/myl/Desktop/IOS/MyDemo
$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.0.4)
Installing MJRefresh (3.1.0)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use `MyDemo.xcworkspace` for this project from now on.
Sending stats
注意最后一句话,意思是:以后打开工程就用 MyDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。你也许会郁闷,为什么会出现.xcworkspace文件呢。这正是你刚刚运行pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。点击 MyDemo.xcworkspace 打开工程之后,你会发现工程目录多了一些,你会惊喜地发现,AFNetwoking和MJRefresh已经成功导入项目了!
新的目录结构:
4. pod update 更新第三方库
如果需要引入或删除类库,只需要修改Profile文件后执行以下命令即可:
pod update
5. 工程中使用类库
如果是OC项目,只需在使用的文件中导入该类库的头文件即可:
#import "AFNetworking.h"
#import "MJRefresh.h"
如果是Swift项目,使用OC的类库,需要新建桥接头文件(MyDemo-Bridging-Header.h),在头文件中导入要使用的类库:
#import <AFNetworking/AFNetworking.h>
#import <MJRefresh/MJRefresh.h>
四、常见问题
1. install,update速度慢
出现原因:你本地的repo库太长时间没有更新了
解决办法:pod repo update
原因在于当执行以上两个命令的时候会升级CocoaPods的specs仓库,如果不想在install,update的时候升级specs库,可以使用参数忽略掉
pod install --no-repo-update
pod update --no-repo-update
2. 导入Swift类库
导入Swift语言编写的类库时需要加use_frameworks!,下面以导入Alamofire为例:
platform :ios, '8.0'
use_frameworks!
pod 'Alamofire', '~> 1.3'
3. 官方文档
对于Podfile参数细节,可以查阅官网,再此不做过多介绍。
http://guides.cocoapods.org/
交友互动:
本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:https://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma