1、检索第三方框架
命令:pod search + 框架关键字
pod search AFN
内部做的事情:从本地缓存的第三方框架描述信息
生成的检索文件
中检索到 相关框架的信息
常见问题:
解决方案:删除cocoapods索引文件
rm ~/Library/Caches/CocoaPods/search_index.json
2、安装第三方框架 步骤
1. 创建 Podfile 文件, 到自己工程内(一级目录)
创建命令:
pod init
Podfile 文件作用?
答:其实就是使用ruby语法编写的 "框架依赖描述文件"; 就是告诉cocoapods需要下载集成哪些框架
常见配置语法?
答:参考http://www.jianshu.com/p/8af475c4f717
须知:可以存放到其他目录, 但必须指定项目工程的位置
答:xcodeproj 如:“Users/你的用户名/Desktop/test/test.xcodeproj”
2. 安装框架
2.1. pod install
按照 podfile 文件中的描述安装框架
2.2. 常见错误内部做的事情:
- cocoapods 如果是1.0.1版本
直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成
- 如果是之前版本
1. 更新本地框架信息源信息(会非常耗时,应该添加参数 --no-repo-update)
2. 直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成
原因:Podfile 文件就是描述 Xcode工程中的targets
- 如果在老版本没有指明, CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。
- 在1.0.1版本之后, 要求必须指明才可以
解决方案:
- 指定依赖目标 target
- 修改Podfile 文件内容, 增加
2.3 生成的重要文件 Podfile.lock
- 作用: 记录着上一次下载的框架最新版本
3 pod install 和 pod update 区别
通过 pod --help 查看
1. installl
- 如果Podfile.lock文件存在, 直接从此文件中读取框架信息下载安装
- 如果不存在, 依然会读取Podfile文件内的框架信息
下载好之后, 再根据下载好的框架信息, 生成Podfile.lock文件
2. update
- 不管Podfile.lock是否存在, 都会读取Podfile文件的的框架信息去下载
下载好之后, 再根据下载好的框架信息, 生成Podfile.lock文件
主要区别在于, Podfile文件内的框架信息, 版本描述有没有指定具体版本,如果有指定版本号等,则没区别;
如果同时将 Pods 文件夹上传到仓库的话,则可以减少多人开发可能产生的不同版本库依赖问题,当前不建议上传 Pods 文件夹的原因我觉得只是嫌弃开始上传文件多且大而已
经验: 实际项目开发过程中, 该如何选择install 和 update 命令??
-
如果多人开发, 首先, 上传除了 Pods 文件夹的其他文件(即上传 .gitignore / Podfile / Podfile.lock / test / test.xcodeproj / test.xcworkspace )
- 一般情况下, 每个人从共享库把项目下载下来之后, 都会执行pod install 命令安装!! 而不是选择 pod update
目的: 是为了保证大家使用的第三方框架版本一致!!
如果以后大家需要统一升级第三方框架, 那么每个人在执行 pod update
4.cocoapods机制图解
本地索引库
/Users/yourComputerName/.cocoapods/repos/master/Spec
本地 JSON索引文件地址 (Caches目录下,会被清除)/Users/yourComputerName/Library/Caches/CocoaPods/search_index.json