美文网首页
cocoapods简单使用及机制理解(1)

cocoapods简单使用及机制理解(1)

作者: Jacob_LJ | 来源:发表于2017-11-18 23:13 被阅读30次

Cocoapods

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 文件中的描述安装框架

内部做的事情:
- cocoapods 如果是1.0.1版本
直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成
- 如果是之前版本
1. 更新本地框架信息源信息(会非常耗时,应该添加参数 --no-repo-update)
2. 直接就是根据 Podfile 文件找到, 框架信息, 然后下载集成

2.2. 常见错误

原因:Podfile 文件就是描述 Xcode工程中的targets

  1. 如果在老版本没有指明, CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。
  2. 在1.0.1版本之后, 要求必须指明才可以

解决方案:

  1. 指定依赖目标 target
  2. 修改Podfile 文件内容, 增加 补充: 可以使用 link_with 关键字, 让多个target 使用同一个Pod依赖库 技巧:具体可以查看cocoaPods官网 https://guides.cocoapods.org

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

本地 JSON索引文件

相关文章

网友评论

      本文标题:cocoapods简单使用及机制理解(1)

      本文链接:https://www.haomeiwen.com/subject/ivpyvxtx.html