组件化(一)Cocoapods

本篇文章讲述Cocoapods的安装与使用,也可以从官方指南开始。

一、CocoaPods

CocoaPods是管理iOS项目中第三方开源库的工具,简单易用。

Cocoapods安装有Ruby环境,Mac本身配置有ruby环境,如果需要安装多个ruby版本,可以参考Tool:Ruby-install-for-Mac

二、安装

假如安装了多个Xcode,需要:

1
$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

2.1 安装Cocoapods

1
2
3
$ sudo gem install cocoapods
//若需要制定版本
$ sudo gem install cocoapods -v 版本号

安装失败,或出现错误:

下载淘宝集成的ruby镜像RubyGems,具体操作,在终端执行下面两条语句

1
2
3
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l

2.2 初始化官方Master索引库

Cocoapods维护了一个庞大的索引库,绝大多数开源库,都是基于该索引。

1
$ pod setup

此步如果很慢,或者遇到RPC failed; curl 56 SSL read: 之类的错误,那么就直接从

https://github.com/CocoaPods/Specs 下载zip包,解压到路径~/.cocoapods/repos/master

屏幕快照 2018-10-12 上午10.34.32

注意,解压后为Specs-master,改为Specs。

使用

项目中引入第三方库

生成Podfile文件

1
$ pod init

Podfile文件如下;

1
2
3
4
5
6
7
platform :ios, '9.0'
# ignore all warnings from all pods
inhibit_all_warnings!
target 'BeeFun' do
use_frameworks!
pod 'Alamofire'
end

安装第三方库:

1
2
3
$ pod install
//或者
$ pod install --no-repo-update

安装之后,可以找到.xcworkspace的文件,打开就可以运行了。

如果有需要更新第三方库:

1
2
3
4
//更新所有第三方库
$ pod update
//更新AFNetworking库
$ pod update AFNetworking

搜索库:

1
$ pod search AFNetworking

假如在搜索库出现CocoaPods invalid byte sequence in UTF-8类的错误,则需要将~/Library/Caches/CocoaPods/search_index.json该索引文件删除。

索引库操作

添加移除仓库 pod repo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 列出repo仓库列表,
$ pod repo list
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/wenghengcong/.cocoapods/repos/master

//移除/repo_name/
$ pod repo remove master


//pod repo add repo_name repo_url
$ pod repo add Specs https://github.com/CocoaPods/Specs.git

//更新对应的仓库
$ pod repo update 'master'

卸载

列出所有cocoapods安装组件:

1
2
3
4
5
6
7
8
9
10
$  gem list --local | grep cocoapods                                            
cocoapods (1.3.1)
cocoapods-core (1.3.1)
cocoapods-deintegrate (1.0.2)
cocoapods-downloader (1.2.1)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
cocoapods-try (1.1.0)

卸载上面所有列出的组件:

1
2
3
4
for i in $( gem list --local --no-version | grep cocoapods );
do
sudo gem uninstall $i;
done

或者通过gem卸载:

1
$ sudo gem uninstall cocoapods

为了确保彻底移除,同时移除对应cocoapods类库,以及index文件:

1
2
3
4
5
//移除cocoapods库:
$ rm -rf ~/.cocoapods/

//删除~/Library/Caches/CocoaPods目录下的search_index.json文件
$ rm ~/Library/Caches/CocoaPods/search_index.json

参考

更多Cocoapods命令