CocoaPods教程
1.安装
基于天朝特性,需要对ruby源做一个替换操作,移除默认源添加淘宝的ruby源,否则的话会安装失败
gem source --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
校验确认一下:
gem sources -l
*** CURRENT SOURCES ***
http://ruby.taobao.org/
校验成功后执行安装操作:
sudo gem install cocoaPods(默认最新版本)
sudo gem install cocoaPods -v 0.38.2 (安装指定版本的cocoaPods)
sudo gem install cocoaPods -verbose (安装过程中不甘寂寞,可以开启啰嗦模式)
安装完成后 通过
pod --version 校验安装OK并查看安装的版本号
2.使用
常见操作是 使用第三方开源的代码:
想安装AFNetworking的最新版本,那么执行下搜索:
pod search AFNetworking (搜索AFNetworking的库的版本)
(如果是第一次执行 会首先把Cocoapods master pro git clone 下来 查看的方式是 cd ~/.cocoapods/repos)
使用文本编辑器创建一个Podfile文件(推荐使用vim)
vi Podfile
编辑内容
pod 'AFNetworking','~> 2.5.0'
使用版本的说明:
> 0.1 Any version higher than 0.1.
>= 0.1 Version 0.1 and any higher version.
< 0.1 Any version lower than 0.1.
<= 0.1 Version 0.1 and any lower version.
~> 0.1.2 Version 0.1.2 and the versions up to 0.2, not including 0.2. This operator works based on the last component that you specify in your version requirement. The example is equal to >= 0.1.2 combined with < 0.2.0 and will always match the latest known version matching your requirements.
保存退出Podfile文件
执行 pod install
安装完成后会有提示,例如:
[!] Please close any current Xcode sessions and use `CocoaPodsDemo.xcworkspace` for this project from now on.
好 注意提示你使用**工程名.xcworkspace**文件
使用的话就正常的添加头文件使用就可以了
3.常见问题
- 自己创建的库的互相引用问题,只要引用的版本是一样的就不会有问题,不能够强制引用不同的版本。
- 库的版本管理,每一次的修改对应的版本的修改,修改完后需要打tag 当然直接指向分支的修改也是可以的,但是不便于查找某一个版本的问题
- 库升级以后的使用这个库的Podfile文件需不需要修改?看怎么写得,如果是指定写死的版本可能需要注意,如果使用了~>则看版本号的情况
- 如果是测试阶段,那么引用的路径需要指向本地的路径。测试完成后 要记得修改回来
- 针对图片资源和js资源的处理
- 库之间的依赖处理
- podfile上要写明source 地址
- 只想用库的一部分的处理方式
4.创建公司私有库
pod的库管理可以看~/.cocoapods/repos 文件夹
这个文件夹包含了所有能用到的被管理的库 默认只有master
公司的代码不能共享,所以不能够push到master分支,只能创建自己的私有仓库。
$ pod repo add NAME URL [BRANCH]
(NAME 就是你要起的私有仓库名称,URL就是这个仓库的git地址)
对团队而言,每个人的电脑都需要配置这个私有库的过程
执行完这一步原有的~/.cocoapods/repos 文件夹下就增加了一个叫做 NAME的文件夹
这个库里面其实只是存放了 每次提交的podspec文件
私有仓库有了,下面要放点粮食了。创建自己的pod
5.创建自己的Pod
方案一:已经存在一个较为完整的项目,结构层次明晰
通过终端找到自己要封装成库的工程,在 工程名.workspace 目录层级执行 pod spec create 工程名 则创建了 工程名.podspec 文件,该文件默认给你自动生成了不少东西 改一下podspec文件 注意所有的注释都要删除
方案二:[Pod 提供完整的解决方案 pod lib create NAME] (http://guides.cocoapods.org/making/using-pod-lib-create.html)
需要根据提示选择,选完后会生成一个工程+pod 这种情况的话 类文件放到Pod文件夹的Assets文件夹下,图片放到Pod文件夹的Assets文件夹下 然后通过git add / git commit/ git remote add origin [url]/git push origin master 完成对远程git仓库的提交
写完后 我需要简单验证下
pod lib lint(检测你的pod是否OK 如果有error是不可以的) 1. 方案一 pod 'name',:path => '~/**/podlibrary' (指定库路径) 2. 方案二 pod 'name',:podspec => '~/**/*.podspec' (指定podspec的路径) 检测OK 那么让我们传到仓库--》 pod repo push NAME *.podspec --verbose
6.使用中注意的点
使用前执行下 pod repo update NAME 强制更新自己的私有仓库
pod install --no-repo-update 安装的时候不再更新这个库