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 ...
随机推荐
- BZOJ4561: [JLoi2016]圆的异或并 计算几何+treap
因为本题保证两圆之间只有相包含或相离(不用担心两圆重合 因为我没有RE) 所以每个圆之间的相对位置是确定的 也就是可以按极角排序的, 所以可以按横坐标排序后 扫描同时用treap维护加圆删圆(即遇到 ...
- 洛谷P3778 [APIO2017]商旅——01分数规划
题目:https://www.luogu.org/problemnew/show/P3778 转化有点技巧: 其实直接关注比率的上下两项,也就是盈利和时间: 通过暴枚和 floyd 可以处理出两两点间 ...
- PCB Polar SI9000阻抗模型图片文字识别方法
用过Polar SI9000的都知道,阻抗模型图片可以进行用户鼠标交互,那么它的是如何实现的呢,下面就讲一下如何实现此功能的方法 一.看看Polar SI9000阻抗模型图片交互效果 鼠标点击阻抗 ...
- bzoj 1070: [SCOI2007]修车【最小费用最大流】
一开始从客人角度想的,怎么建都不对 从一个修车工所接待的所有顾客花费的总时间来看,设一共有x个人,那么第一个修的对总时间的贡献是x*w1,第二个是(x-1)*w2-以此类推.所以把第i个修车工拆成n组 ...
- P2479 [SDOI2010]捉迷藏
传送门 KDtree是个吼东西啊-- 枚举每一个点,然后求出离他距离最远和最近的点的距离,更新答案 然而为什么感觉KDtree只是因为剪枝才能跑得动呢-- //minamoto #include< ...
- python爬虫爬取腾讯招聘信息 (静态爬虫)
环境: windows7,python3.4 代码:(亲测可正常执行) import requests from bs4 import BeautifulSoup from math import c ...
- [POI2011]Temperature
Description The Byteotian Institute of Meteorology (BIM) measures the air temperature daily. The mea ...
- 2015湘潭市第七届大学生程序设计竞赛 —— Fraction
题目大意: 小数化分数,但是分母限制在[1,1000],很明显的枚举,但是在赛场上的时候傻逼了,无论怎么枚举,怎么二分就是wa,wa到死···········. (ps:我要给出题人寄刀片~~~~), ...
- Codeforces Round #459 (Div. 2)C. The Monster
C. The Monster time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- TSP+Floyd BestCoder Round #52 (div.2) 1002 Victor and Machine
题目传送门 题意:有中文版的 分析:(出题人的解题报告)我们首先需要预处理出任意两个国家之间的最短距离,因为数据范围很小,所以直接用Floyd就行了.之后,我们用f[S][i]表示访问国家的情况为S, ...