cocopods安装
本教程默认Mac已经安装Ruby环境,如果没有安装Ruby,请自行搜索。
如果电脑没有安装cocopods,打开终端输入以下命令:
$ sudo gem install cocoapods
如果由于网络原因无法下载cocopods,那么我建议你使用淘宝镜像下载,具体的方式请自行搜索,并非本文重点。
如果已经安装,那么我建议你将cocopods更新到最新稳定版本,命令与上面一样。
使用cocopods拉取远依赖库
- 创建一个新的ios项目
- 打开电脑终端窗口
$ cd
进入你的项目根目录 - 使用$
pod init
命令创建一个Podfile文件 - 第一行你应当定义你支持的平台和版本,比如
platform :ios, '9.0'
创建目标应用部分,使用
target '$TARGET_NAME' do
开头和end
结束,例如1
2
3target 'MyApp' do
pod 'ObjectiveSugar'
end然后保存的你Podfile文件,执行
$ pod install
命令,将会自动创建新文件- 找到文件中的
'$TARGET_NAME'.xcworkspace
,点击打开,这个文件将是你以后使用的项目打开文件。
Pod命令简介
许多开始使用cocopods的新手似乎都不大能分清pod install
和pod update
的作用
pod install
:第一次给项目安装cocopods时使用,在已经有cocopods环境的项目中添加或者删除依赖库时使用。pod update
:主要是用来升级依赖库的版本,其中加上依赖库名字,比如pod update PODNAME
将只更新这个依赖库的版本。
如果装载新的依赖库速度过慢,可以使用命令pod install --verbose --no-repo-update
来替代pod install
Podfile文件
支持一个target的podfile可能是这样子的:
1 | target 'MyApp' do |
如果你有多个target,不同的target使用不同的库,互不影响,那么可能是这样子的:
1 | abstract_target 'Shows' do |
依赖库的版本
如果你希望使用库最新的版本就那么只要:
pod 'SSZipArchive'
如果你希望使用库的某个特定版本:
pod 'Objection', '0.9'
使用操作符来定义
- ‘> 0.1’ 任何大于0.1的版本
- ‘>= 0.1’ 任何大于或者等于0.1的版本
- ‘< 0.1’ 任何小于0.1的版本
- ‘<= 0.1’ 任何小于或者等于0.1的版本
- ‘~> 0.1.2’ 大于等于0.1.2版本,小于0.2版本
- ‘~> 0.1’ 大于等于0.1版本,小于1.0版本
库的路径
依赖于本地库:
1
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
使用github上项目的master主干仓库:
1
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git'
使用github上项目分支仓库:
1 | pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev' |
- 使用特定的tag版本仓库:
1 | pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0' |
- 使用某次提交的仓库:
1
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'
创建自己的cocopods依赖库
我推荐你用官方自动生成的模板来构建自己的库项目,避免自己动手去构建的错误,比如语法错误,文件位置错误。
选择好文件位置,创建自己的库项目
1
pod lib create MyLib
期间会有些选择,根据自己的需求去打命令选择。主要有
- Objective-C or Swift
- Making a Demo Application
- Choosing a Test Framework
- View-based Testing
最后的目录如下:
MyLib
├── .travis.yml
├── _Pods.xcproject
├── Example
│ ├── MyLib
│ ├── MyLib.xcodeproj
│ ├── MyLib.xcworkspace
│ ├── Podfile
│ ├── Podfile.lock
│ ├── Pods
│ └── Tests
├── LICENSE
├── MyLib.podspec
├── Pod
│ ├── Assets
│ └── Classes
│ └── RemoveMe.[swift/m]
└── README.md
–
这个文件中自动包含了license , readme.md , pod描述文件。你所要做的事情就是将你的代码嵌入进去,并修改 podspec中的summary描述文字,<GITHUB NAME>
为你的github账户名,可选的修改和添加其他字段属性。在修改spec文件的时候要注意语法错误往往都是双引号或者单引号引起的,有的文本编辑器默认更改了了spec文件的双引号和单引号类型,你可以更正过来,一般单引号都是使用键盘上面数字1左边的的键位上的单引号,双引号可以复制其他正确引用的单引号。
Pod文件是你存放自己的库的地方,Example是库的使用示例代码,你可以向使用者展示下如何使用你的库。
注意,如果你的库是由swift语言编写,那么你需要将需要暴露给使用者的类,接口,和方法等等声明为public,否则可能会出现访问不到该类的情况。
- 将自己的库代码嵌入项目
在xcode编辑界面中,将自己的库代码放入 Development Pods文件夹,然后执行pod update
,注意库的权限一定要是public,然后项目重新编译一下。在需要使用到库的类中导入库import ANNetworking
,我建议你在自己的Example中检查下库的可用性。 - 使用git工具将项目push到自己的github仓库中
- realse版本发布的准备
当你即将发布自己的库到cocopods的时候,你需要先使用命令pod lib lint
来检查下pod描述文件是否有错误,确认无误,给你的项目打上版本tag,并且push,命令如下
$ git add -A && git commit -m "Release 0.0.1."
$ git tag '0.0.1'
$ git push --tags
- 部署自己的库
在部署前先要进行错误检查,使用命令pod lib lint
和pod spec lint
,二者的区别在于,前者只会进行本地校验,后者进行github仓库和tag校验。 - 将pod描述文件推送到pod服务器,网络畅通情况下,一到两分钟就能看到成功的结果,命令如下:
1 | pod trunk push NAME.podspec |
完成后搜索下自己传上去的库,pod search NAME
,最好能自己试用一下。