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 命令和使用的更多相关文章

  1. cocoapods 命令

    1.使用CocoaPods a  新建一个项目,名字cocoapods

  2. iOS -- CocoaPods

    CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...

  3. 安装cocoapods以及更新cocoapods

    安装 1.设置ruby的软件源 这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下: gem sources -l #(查看当前 ...

  4. 安装cocoapods及相关问题解决

    申明:本博客大部分内容转载自简书http://www.jianshu.com/p/b64b4fd08d3c,但还有些问题博主在这里做了补充. Mac系统版本:10.12.1 一.什么是CocoaPod ...

  5. 最新Mac OS X 10.12.1 安装cocoapods及使用详解

    cocoapods官网:https://cocoapods.org 一.什么是CocoaPods 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs ...

  6. 2016最新cocoapods安装流程,安装过程中遇到的问题及解决方法

    现在的cocoapods与之前比较.有很多不一样的地方.自己试了一试,终于搞定.现在大概纪录一下. 1.首先查看ruby是否是最新版的. ruby是通过rvm安装的所以需要先安装rvm后查看ruby是 ...

  7. CocoaPods安装和使用

    CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods. CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.幸运的是OS X系统默 ...

  8. iOS 如何通过CocoaPods添加第三方框架

    一  先安装Ruby环境: http://ruby-china.org/wiki/install_ruby_guide 在安装的时候,若是出现: 1.You don't have write perm ...

  9. Cocoapods的安装与使用

    一.安装 1.CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.OS X系统默认已经可以运行Ruby了,因此我们只需执行以下命令: sudo gem install cocoa ...

随机推荐

  1. Windbg脚本和扩展工具开篇

    好长一段时间没写文章了,最近一直忙于为项目的可调式性做一些脚本和扩展工具,鉴于对windbg强大威力的震撼,以及相对较少的资料,笔者决定写一系列关于如何开发Windbg脚本和扩展命令的文章,您的支持是 ...

  2. linuxmint安装卡在探测文件系统,解决方法。

    今天安装linuxmint17.3,一直卡在探测文件... 解决方法如下: 执行安装程序前,打开终端执行如下命令即可. sudo umount -l /isodevic

  3. POJ3682;King Arthur's Birthday Celebration(期望)

    传送门 题意 进行翻硬币实验,若k次向上则结束,进行第n次实验需花费2*n-1的费用,询问期望结束次数及期望结束费用 分析 我们令f[i]为结束概率 \[f[i]=C_{i-1}^{k-1}*p^k* ...

  4. bzoj 3307: 雨天的尾巴【树剖lca+树上差分+线段树合并】

    这居然是我第一次写线段树合并--所以我居然在合并的时候加点结果WAWAWAMLEMLEMLE--!ro的时候居然直接指到la就行-- 树上差分,每个点建一棵动态开点线段树,然后统计答案的时候合并即可 ...

  5. bzoj 3930: [CQOI2015]选数【快速幂+容斥】

    参考:https://www.cnblogs.com/iwtwiioi/p/4986316.html 注意区间长度为1e5级别. 则假设n个数不全相同,那么他们的gcd小于最大数-最小数,证明:则gc ...

  6. 徐州联赛选拔赛 - 计算IP地址值

    题目链接 思路:这是一道非常简单的题目,直接用公式计算就好了.对于IP地址a.b.c.d,转换为十进制数就是(a<<24)|(b<<16)|(c<<8)|d.唯一要 ...

  7. python之logging模块简单用法

    前言: python引入logging模块,用来记录自己想要的信息.print也可以输入日志,但是logging相对print来说更好控制输出在哪个地方.怎么输出以及控制消息级别来过滤掉那些不需要的信 ...

  8. [POI2009]石子游戏Kam

    Description 有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数.两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件谁没有石子可移时输掉游戏 ...

  9. 2017 JUST Programming Contest 3.0 D. Dice Game

    D. Dice Game time limit per test 1.0 s memory limit per test 256 MB input standard input output stan ...

  10. 树上最长链 Farthest Nodes in a Tree LightOJ - 1094 && [ZJOI2007]捉迷藏 && 最长链

    树上最远点对(树的直径) 做法1:树形dp 最长路一定是经过树上的某一个节点的. 因此: an1[i],an2[i]分别表示一个点向下的最长链和次长链,次长链不存在就设为0:这两者很容易求 an3[i ...