CocoaPods 命令和使用
CocoaPods 命令
pod init 在新建的项目根目录下运行该命令,为当前项目新建podfile文件。
pod install 下载和配置 podfile里定义的项目依赖(不包括已经下载和配置的项目依赖)。(新建podfile.lock文件)并将每个依赖的版本信息记录在podfile.lock文件中。为项目新建.xcworkspace文件。
pod outdated 列出比podfile.lock文件中记录的版本要新的项目。
pod update [依赖项目名称] 将某个依赖更新到最新版本 直接pod udate就把所有依赖都更新到最新版本。
CocoaPods 使用
使用CocoaPods的项目比不使用的项目多了四个文件:分别为podfile文件、podfile.lock文件、.xcworkspace文件以及一个Pods文件夹。
podfile文件为项目的每个target定义(在不同的iOS版本上运行时)所需要的依赖项目。podfile.lock文件用于记录当前项目每个依赖项目的版本,保证该项目的版本信息不被改变。.xcworkspace文件为使用CocoaPods之后项目的启动文件,记录的所有项目文件之间的关系。Pods文件夹是项目的依赖存放的地方。
在项目中使用CocoaPods的关键在于新建一个profile文件。有了profile文件,其余的使用一句命令就可以自动完成。
1、新建项目并使用CocoaPods
在新建的项目根目录下运行该命令pod init命令。自动会在项目根目录下生成profile文件。至此完成了使用CocoaPods的准备工作。
接下来就是打开profile文件,定义依赖,并且运行pod install命令,就会为项目生成使用上面介绍的podfile.lock文件以及.xcworkspace文件。
2、已有项目使用CocoaPods
手动在项目根目录下新建profile文件,定义相关依赖,然后运行pod install,也会生成上述三个文件。
注意事项
1、初次使用
初次使用CocoaPods的pod install命令,CocoaPods自身会自动进行初始化。初始化所做的其实就是把github上的整个依赖库下载到本地路径/users/用户名/.cocoapods/repos/master文件夹下。但是在国内是不行的,被墙,也就是会一直卡在CocoaPods set up master repo这句话上不动了,或者过了很久给你报错说unable to install bla bla bla …这时可以上github上下载(地址:https://github.com/CocoaPods/Specs),然后把下载到的内容自己复制到这个路径下就好了(或者让其他已经用上CocoaPods的人airdrop过来比下载更快,毕竟文件好大。。)。master下文件结构如图:
上图中,Specs就是整个依赖库。
2、版本控制
podfile.lock文件应该始终参与版本控制。
profile文件的基本语言格式
1、基本格式
为某个target定义依赖的格式
最简单的例子:
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'FBSDKCoreKit', '~> 4.9’
end
1
2
3
4
继承大do - end之间定义的依赖项目
target 'MyApp' do
pod 'GoogleAnalytics', '~> 3.1'
target 'MyAppTests' do
inherit! :search_paths
pod 'OCMock', '~> 2.0.1'
end
end
1
2
3
4
5
6
7
上面MyAppTests也依赖GoogleAnalytics。
定义多个target共享的依赖项目使用abstract_target
# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' do
pod 'ShowsKit'
pod 'Fabric'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上面的Shows只是个标识,并不存在这样的target。但在它的do-end之间定义的其他的target会共享这个abstract_target所定义的依赖。
定义项目中所有target都使用的依赖项目
直接不加任何修饰地定义就可以了,如下:
pod 'ShowsKit'
pod 'Fabric'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' do
pod 'ShowTVAuth'
end
1
2
3
4
5
6
7
8
9
10
11
12
2、项目版本的指定
- 指定某个版本:
pod ‘项目名称’, ‘版本号’
如:
pod 'Objection', '0.9'
给出版本范围
符号>、>=、<、<=都能用,
如:
'> 0.1'
符号~>用法见如下例子:
'~> 0.1.2'
表示范围为>=0.1.2&&<0.2
'~> 0.1'
表示范围为>=0.1&&<1
3、添加本地项目作为依赖
如:
pod 'Alamofire', :path => '~/Documents/Alamofire'
以上例子全部来自官网。
---------------------
作者:ohyeahhhh
来源:CSDN
原文:https://blog.csdn.net/ohyeahhhh/article/details/51878549
版权声明:本文为博主原创文章,转载请附上博文链接!
CocoaPods 命令和使用的更多相关文章
- cocoapods 命令
1.使用CocoaPods a 新建一个项目,名字cocoapods
- iOS -- CocoaPods
CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...
- 安装cocoapods以及更新cocoapods
安装 1.设置ruby的软件源 这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下: gem sources -l #(查看当前 ...
- 安装cocoapods及相关问题解决
申明:本博客大部分内容转载自简书http://www.jianshu.com/p/b64b4fd08d3c,但还有些问题博主在这里做了补充. Mac系统版本:10.12.1 一.什么是CocoaPod ...
- 最新Mac OS X 10.12.1 安装cocoapods及使用详解
cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...
- 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法
现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...
- CocoaPods安装和使用
CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods. CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.幸运的是OS X系统默 ...
- iOS 如何通过CocoaPods添加第三方框架
一 先安装Ruby环境: http://ruby-china.org/wiki/install_ruby_guide 在安装的时候,若是出现: 1.You don't have write perm ...
- Cocoapods的安装与使用
一.安装 1.CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.OS X系统默认已经可以运行Ruby了,因此我们只需执行以下命令: sudo gem install cocoa ...
随机推荐
- 【SCOI 2005】 互不侵犯
[题目链接] 点击打开链接 [算法] 和HDU2167类似 先搜出一行内符合的状态,然后,f[i][j][k]表示第i行,第j种状态,放了k个,合法的方案,DP即可 [代码] #include< ...
- 淘淘商城项目_同步索引库问题分析 + ActiveMQ介绍/安装/使用 + ActiveMQ整合spring + 使用ActiveMQ实现添加商品后同步索引库_匠心笔记
文章目录 1.同步索引库问题分析 2.ActiveM的介绍 2.1.什么是ActiveMQ 2.2.ActiveMQ的消息形式 3.ActiveMQ的安装 3.1.安装环境 3.2.安装步骤 4.Ac ...
- 洛谷 P1081 开车旅行【双向链表+倍增】
倍增数组的20和N写反了反复WAWAWA-- 注意到a和b在每个点上出发都会到一个指定的点,所以这样构成了两棵以n点为根的树 假设我们建出了这两棵树,对于第一问就可以枚举起点然后倍增的找出ab路径长度 ...
- hdu1115【多边形求重心模板】
1.质量集中在顶点上.n个顶点坐标为(xi,yi),质量为mi,则重心(∑( xi×mi ) / ∑mi, ∑( yi×mi ) / ∑mi) 2.质量分布均匀.这个题就是这一类型,算法和上面的不同. ...
- bzoj 1006: [HNOI2008]神奇的国度【弦图+LesBFS】
参考论文:https://wenku.baidu.com/view/6f9f2223dd36a32d73758126.html 参考代码:http://hzwer.com/3500.html 虽然会写 ...
- bootstrap 弹出框 另类运用
下面是我在做一个简单登录页面时,应用boostrap弹出框,通过调节做成警示框的过程,前后经过了一番波折.因为摸索过程十分有趣,最后也是成功的,使用弹出框做除了警示框的效果,下面我们来看一下吧. 首先 ...
- magento CURD操作
查询: $model = Mage::getModel('mynews/mynews'); $collection = $model->getCollection(); $collection- ...
- Activity的onSaveInstanceState和onRestoreInstanceState触发的时机
转自:http://www.cnblogs.com/heiguy/archive/2010/10/30/1865239.html 1.原文 先看Application Fundamentals上的一段 ...
- Nuget 自定义配置(官网)
<?xml version="1.0" encoding="utf-8"?> <configuration> <config> ...
- AJPFX解析关于编码ansi、GB2312、unicode与utf-8的区别
大家平时遇到乱码问题是否有自己的一套解决方案?这篇文章就是介绍一下常用的编码方式关于编码ansi.GB2312.unicode与utf-8的区别 先做一个小小的试验: 在一个文件夹里,把一个txt文本 ...