cocoapods
2016-09-28 本文已影响0人
彼岸的黑色曼陀罗
cocoapods
cocoapods简介
- 是什么:
- 是用来管理项目中第三方框架的一个工具包
- 为什么?
- 一次 可以更新|添加|删除项目里的所有框架
- 可以很方便的解决依赖问题
- 项目很干净很整洁
- 内部会自动完成所有的配置操作(比如:GDataXML)
- 原理:是将所有的依赖库都放到另一个名为Pods项目中,然后主项目依赖Pods项目,这样,源码管理工作都从主项目移动到了Pods项目中
- Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可
- 对于资源文件,CocoaPods提供了一个名为Pods.resources.sh的bash脚步,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中
- CocoaPods通过一个名为Pods.xconfig的文件在编译时设置所有的依赖和参数
cocoapods安装
- 先升级Gem(可以省略)
- sudo gem update -- system
- 新系统不需要执行这个命令
- 比较耗时
- 切换cocoapods的数据源
- gem source -- remove http://rubygems.org/
- gem source - a https://ruby.taobao.org/
- gem source - l
- 测试
- 查看电脑里是否安装了cocoapods
- pod - version
- 卸载:gem uninstall cocoapods
- sudo管理员权限 重新卸载 ,输入电脑密码
- pod - version
- 切换cocoapods数据源
- 查看gem source - l
- 已经有了就不用
- 安装
- sudo gem install cocoapods
- 或者sudo gem install - n/usr/local/bin cocoapods
- 看到successfully以及installed就成功了
- 设置pods仓库
- 只支持管理一部分第三方框架
- pod setup
- github上开源的
- CocoaPods Specs里面有所有的支持的框架的文件
- completed设置完成
- 测试是否安装完 pod - version 看是否是1.0.1
- 不建议用测试版本
利用cocoapods安装第三方框架
-
cd
-
ls - la 以列表方式,列出当前所有的文件
-
在文件夹里新建一个Podfile文件
- pod init
- 在Podfile文件里告诉要安装的框架
- 井号表示注释
- platform:ios'9.0'
- target 'demo' do
- 判断是否支持安装框架
- 官网里面搜索
- 在本地命令行搜索
- pod search SDWebImage
- 在podfile里面
- pod 'SDWebImage',~>3.8.1'
- 版本号规则
- ‘~>’安装高于这个版本的所有版本,最新版本
- 按键盘上的q退出
-
安装
- pod install
- 分析依赖,分析podfile,查看不同类库的依赖情况
- 下载依赖
- 安装框架
- 创建pods project
- 整合pods项目
- pod install
-
.xcodeworkspace
-
项目中使用到框架 怎么办
- import<UIImageView + WebCache.h> - 删除框架
- 直接去掉podfile里面的pod语句
- 命令行里重新输入pod install
- 或者 remove
-
安装框架除了用install还可以用update
- update:之前podfile里面只有一个框架,当增加框架的时候可以直接更新
- pods是本地的仓库,仓库里面就是把支持的所有框架的podspecs文件下载到本地
- 直接更新好像更慢,会更新所有的pods
- pod update -- help
- pod update -- no - repo - update简单的更新
- 如果有很多框架需要安装,就直接在podfile里面写上框架的名称,然后更新
-
命令行使用技巧
- gem -- help
- gem source -- help
使用cocoapods插件安装第三方框架
- Xcode插件,就不用命令行了
- github上面搜Cocoapods-xcode-plugin
- 下载下来之后运行一下插件
- 创建新的项目
- 退出xcode
- 再打开xcode,xuanz loadbundle
- 点击xcode - product - cocoapods
- 创建podfile文件
- 不知道怎么写怎么办?
- github上搜AFN上面有相关的模板和介绍
target ‘demo’ do
pod 'AFNetworking'
end
- 点击product - cocoapods - install
- 本质内部就是调用命令行,使用插件相对使用命令行更慢一些