老青菜

CocoaPods - 简介

2014-10-14

CocoaPods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库。

伴随公司的产品线越来越多,基础能力层 抽象和维护越来越重要,这里如果使用CocoaPods 来管理就很方便

CocoaPods 安装

sudo gem install cocoapods     
pod setup

Pod 库查找

pod search AFNetworking

如图,AFNetworking有2.5.1、2.6.0 等等版本。

Podfile 配置

cd IosDemo
touch Podfile

编辑Podfile文件,或者使用

vi Podfile

增加以下内容:

#指定 workspace 名称
workspace 'KDxxxx.xcworkspace'
xcodeproj 'KDxxxx/KDxxxx.xcodeproj'

#指定版本
platform :ios, '6.0'
#官方 master 仓库 url
source 'https://github.com/CocoaPods/Specs.git'

#安装 AFNetworking,第二种直接指定git url下载,不通过pod spec描述文件
pod 'AFNetworking', '2.5.1'
#pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'

集成

进入项目跟目录,执行pod install

cd IosDemo    
pod install --no-repo-update

这样在项目根目录下就产生了 KDxxxx.xcworkspace文件,双击打开就可以使用了。

--no-repo-update: 不更新 本机 spec repo

如果需要更新仓库,建议单独执行 ,这样可以避免 pod install 卡住

pod repo update master (仓库)

目录介绍

Podfile

类似一个配置文件,可以对 projecttarget 做一些配置和配置三方库,其实是用 ruby 写的,在里面我们写ruby脚本(后面会讲到)

Podfile.lock

执行 pod install 后生成的文件,记录项目依赖各个pod lib的 spec 版本 和 唯一标识符。

Pods

执行 pod install 后生成的目录,包括各个Lib的源文件、合成的 Pods project等等

~/.cocoapods/repos

包含所有 spec 仓库的集合.

执行命令:

tree -L 1 ~/.cocoapods/repos/

#输出
/Users/Green/.cocoapods/repos/
├── xxxxdi-one-ios
├── kd-pod-repos
├── xxxxdi-pod-repos
├── master
├── xxxxkeji-ios-cocoapods-specs
└── xxxxkeji-one-ios-specs
6 directories, 0 files

可以看到我这里有6个 pods 仓库,除了 master 是官方的 spec仓库,其他全是私有仓库。

每个 spec 仓库是一个容器,包含了所有Pods Libs 的 每个版本的 Spec 文件,它实际是一个Git仓库,remote端在GitHub上。

执行命令:

tree -L 3 ~/.cocoapods/repos/kd-pod-repos

#输出
/Users/Green/.cocoapods/repos/kd-pod-repos
├── KDAudioTransformat
│   └── 1.0.1
│       └── KDAudioTransformat.podspec.json
├── KDControlKit
│   └── 1.0.8
│       └── KDControlKit.podspec.json
├── KDCrashlytics
│   └── 1.0.2
│       └── KDCrashlytics.podspec.json
├── KDDataBase
│   └── 1.0.1
│       └── KDDataBase.podspec.json
├── KDEntityHelper
│   └── 1.0.2
│       └── KDEntityHelper.podspec.json
├── KDJSONKit
│   └── 1.0.0
│       └── KDJSONKit.podspec.json
├── KDLocation
│   └── 1.0.6
│       └── KDLocation.podspec.json
├── KDMapkit
│   ├── 1.1.3
│   │   └── KDMapkit.podspec.json
│   └── 1.1.5
│       └── KDMapkit.podspec.json

可以清晰地看到 kd-pod-repos 私有仓库下包含了 每个 pod lib 的各个版本的 podspec 文件。

添加仓库


那么这些私有仓库是怎么添加进去的呢?首先你得有一个有效的可访问 git 路径。

当我们在 podfile 指定了 私有库的 source

source 'git@gitlab.xxxx.com:ios-pods/pod-repos.git'

podin的时候 CocoaPods 自动帮我们执行了(当然我们也可以自己执行)

pod repo add pod-repos git@gitlab.xxxx.com:ios-pods/pod-repos.git

其实等同于以下命令

cd /.cocoapods/repos
git clone git@gitlab.xxxx.com:ios-pods/pod-repos.git 
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章