1. 使用框架的人需要做
1. 使用cocoapods
1. 检索第三方框架
pod search 框架关键字
内部做的事情:
从本地缓存的"第三方框架描述信息" 生成的检索文件中检索到 相关框架的信息
常见问题:
解决方案:
删除cocoapods索引文件
rm ~/Library/Caches/CocoaPods/search_index.json
2. 安装第三方框架
1. 创建 Podfile 文件, 到自己工程内(一级目录)
Podfile 文件作用?
答: 其实就是使用ruby语法编写的 "框架依赖描述文件"; 就是告诉cocoapods需要下载集成哪些框架
常见配置语法
http://www.jianshu.com/p/8af475c4f717
须知: 可以存放到其他目录, 但必须指定项目工程的位置
xcodeproj
创建命令
pod init
2. 安装框架
pod install
内部做的事情:
cocoapods 如果是1.0.1版本
直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成
如果是之前版本
1. 更新本地框架信息源信息
非常耗时
添加参数
--no-repo-update
2. 直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成
常见错误
原因:
Podfile 文件就是描述 Xcode工程中的targets
如果在老版本没有指明, CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。
在1.0.1版本之后, 要求必须指明才可以
解决方案:
指定依赖目标
target
修改Podfile 文件内容, 增加
补充: 可以使用 link_with 关键字, 让多个target 使用同一个Pod依赖库
技巧:
具体可以查看cocoaPods官网
https://guides.cocoapods.org
生成的重要文件
Podfile.lock
作用: 记录着上一次下载的框架最新版本
pod install 和 pod update 区别
图解
解释
1. installl
如果Podfile.lock文件存在, 直接从此文件中读取框架信息下载安装
如果不存在, 依然会读取Podfile文件内的框架信息
下载好之后, 再根据下载好的框架信息, 生成Podfile.lock文件
2. update
不管Podfile.lock是否存在, 都会读取Podfile文件的的框架信息去下载
下载好之后, 再根据下载好的框架信息, 生成Podfile.lock文件
主要区别在于, Podfile文件内的框架信息, 版本描述没有指定具体版本
经验: 实际项目开发过程中, 该如何选择install 和 update 命令??
如果多人开发, 首先, 上传到共享库的只有图示的四个文件!!
一般情况下, 每个人从共享库把项目下载下来之后, 都会执行pod install 命令安装!! 而不是选择 pod update
目的: 是为了保证大家使用的第三方框架版本一致!!
如果以后大家需要统一升级第三方框架, 那么每个人在执行 pod update
3. 打开*.xcworkspace文件开始使用
2. 遇到问题怎么办?
到cocoapods在github上的代码仓库中查看
3. cocoapods插件安装
https://github.com/kattrali/cocoapods-xcode-plugin
优势:
不必手动创建Podfile
不需要敲命令
cocoapods机制图解
2. 开发框架的人需要做
0. 创建库工程, 添加源文件到Classes文件夹
1. 上传项目到github, 并且打好标签
git push origin master
git tag '1.0.0'
git push --tags
2. 配置并上传框架的 PodSpec 文件, 并使用trunk的方式上传
0. 理论
PodSpec 文件 描述自己的框架信息
作者,版本, 下载地址等等
pod install 就是根据这个文件里面的 源文件路径进行安装的
注意: 一般这个文件的名称和工程名称保持一致
创建命令
pod spec create 文件名称
1. 文件内容格式
可以下载被cocoapods管理的框架里面的描述信息, 也可以到官网查看
手动验证
pod spec lint podspec文件

Paste_Image.png
2. 注册trunk
pod trunk register wangshunzi@520it.com 'wangshunzi' --verbose
--verbose参数是为了便于输出注册过程中的调试信息

Paste_Image.png
成功图解

Paste_Image.png
3. 通过trunk推送podspec文件
pod trunk push
注意:
这种方式其实就是上传这个描述文件到cocoapods在github上的仓库中
https://github.com/CocoaPods/Specs
你也可以按照正常的操作, 先fork , 然后提交 pull request
4. 等待审核
跟pull request一样, 需要作者同意

Paste_Image.png
3. 更新本地pod 第三方框架信息数据源
pod setup
可以省略这一步骤, 因为上述提交, 直接更新了本地索引库
5. 测试
使用pod search 命令搜索自己的框架, 如果可以搜索到, 那么代表审核通过了

Paste_Image.png
3 cocoapods相关操作
1. 查看第三方框架仓库源
pod repo
2. 移除仓库源
pod repo remove master
3. 添加仓库源
pod repo add master http://git.oschina.net/akuandev/Specs.git
4. 初始化(下载服务器中所有第三方框架信息, 缓存到电脑本地)
pod setup
4 cocoapods重要路径
索引缓存路径
~/Library/Caches/CocoaPods/
如果发现框架信息本地已经缓存, 但是就是无法搜索框架, 可以删除这个索引文件, 重新生成
pod命令安装路径
/usr/local/bin
pod 框架索引信息缓存路径
/Users/apple/.cocoapods/repos/master
网友评论