CocoaPods详解之(二)----进阶篇
一、Podfile.lock文件
- PODS:
- - AFNetworking (2.1.0):
- - AFNetworking/NSURLConnection
- - AFNetworking/NSURLSession
- - AFNetworking/Reachability
- - AFNetworking/Security
- - AFNetworking/Serialization
- - AFNetworking/UIKit
- - AFNetworking/NSURLConnection (2.1.0):
- - AFNetworking/Reachability
- - AFNetworking/Security
- - AFNetworking/Serialization
- - AFNetworking/NSURLSession (2.1.0):
- - AFNetworking/NSURLConnection
- - AFNetworking/Reachability (2.1.0)
- - AFNetworking/Security (2.1.0)
- - AFNetworking/Serialization (2.1.0)
- - AFNetworking/UIKit (2.1.0):
- - AFNetworking/NSURLConnection
- - Reachability (3.0.0)
- - SBJson (4.0.0)
- DEPENDENCIES:
- - AFNetworking (~> 2.0)
- - Reachability (~> 3.0.0)
- - SBJson (~> 4.0.0)
- SPEC CHECKSUMS:
- AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd
- Reachability: 500bd76bf6cd8ff2c6fb715fc5f44ef6e4c024f2
- SBJson: f3c686806e8e36ab89e020189ac582ba26ec4220
- COCOAPODS: 0.29.0
Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:
- pod 'SBJson'
该句话用于获取当前SBJson这个Pods依赖库的最新版本。
当团队中的某个人执行完pod
install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含
Podfile.lock文件的工程以后,再去执行pod
install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod
install命令都会获取最新版本的SBJson,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!
- 更改Podfile,使其指向最新版本的SBJson依赖库;
- 执行pod update命令;
二、Podfile文件
1、Podfile文件存放位置
这是在上篇文章中,遗留的一个问题。通常情况下我们都推荐Podfile文件都放在工程根目录,如下图所示:
- xcodeproj "/Users/wangzz/Desktop/CocoaPodsTest/CocoaPodsTest.xcodeproj"
- platform :ios
- pod 'Reachability', '~> 3.0.0'
- pod 'SBJson', '~> 4.0.0'
- platform :ios, '7.0'
- pod 'AFNetworking', '~> 2.0'
指定路径使用的是xcodeproj关键字。
2、Podfile和target
- link_with 'CocoaPodsTest', 'Second'
- platform :ios
- pod 'Reachability', '~> 3.0.0'
- pod 'SBJson', '~> 4.0.0'
- platform :ios, '7.0'
- pod 'AFNetworking', '~> 2.0'
这种写法就实现了CocoaPodsTest和Second两个target共用相同的Pods依赖库。
- target :'CocoaPodsTest' do
- platform :ios
- pod 'Reachability', '~> 3.0.0'
- pod 'SBJson', '~> 4.0.0'
- platform :ios, '7.0'
- pod 'AFNetworking', '~> 2.0'
- end
- target :'Second' do
- pod 'OpenUDID', '~> 1.0.0'
- end
3、使用Podfile管理Pods依赖库版本
- pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
- pod 'AFNetworking', '2.0' //只使用2.0版本
- pod 'AFNetworking', '> 2.0' //使用高于2.0的版本
- pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本
- pod 'AFNetworking', '< 2.0' //使用小于2.0的版本
- pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本
- pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本
- pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
- pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
三、CocoaPods常用命令
1、pod install
2、pod update
3、pod search
- $ pod search OpenUDID
后面的OpenUDID为参数。
- -> OpenUDID (1.0.0)
- Open source initiative for a universal and persistent UDID solution for iOS.
- pod 'OpenUDID', '~> 1.0.0'
- - Homepage: http://OpenUDID.org
- - Source: https://github.com/ylechelle/OpenUDID.git
- - Versions: 1.0.0 [master repo]
这里我们搜到了一条可用数据,里面描述了OpenUDID库的简要信息。其实我们真正需要的是上述结果中的第三行:
- pod 'OpenUDID', '~> 1.0.0'
不难看出,这是我们需要添加到Podfile文件中的。
4、pod setup
- $ pod setup
- Setting up CocoaPods master repo
- Updating 7cd4668..f3d3ced
- Fast-forward
接下来还会打印很多更新信息。
这条命令用于跟新本地电脑上的保存的Pods依赖库tree。由于每天有很多人会创建或者更新Pods依赖库,这条命令执行的时候会相当慢,还请耐心等待。我们需要经常执行这条命令,否则有新的Pods依赖库的时候执行pod search命令是搜不出来的。
四、参考文档
CocoaPods详解之(二)----进阶篇的更多相关文章
- hadoop之yarn详解(框架进阶篇)
前面在hadoop之yarn详解(基础架构篇)这篇文章提到了yarn的重要组件有ResourceManager,NodeManager,ApplicationMaster等,以及yarn调度作业的运行 ...
- CocoaPods详解之(三)----制作篇
CocoaPods详解之----制作篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 转载请注明出处 ...
- CocoaPods详解之(一)----使用篇
CocoaPods详解之----使用篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/18737437 一.什么是Coc ...
- 【three.js详解之二】渲染器篇
[three.js详解之二]渲染器篇 本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...
- Linux DTS(Device Tree Source)设备树详解之二(dts匹配及发挥作用的流程篇)【转】
转自:https://blog.csdn.net/radianceblau/article/details/74722395 版权声明:本文为博主原创文章,未经博主允许不得转载.如本文对您有帮助,欢迎 ...
- Mysql高手系列 - 第18篇:mysql流程控制语句详解(高手进阶)
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第18篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符 ...
- CocoaPods 详解之----更新篇
CocoaPods 大概是 2011 年出现的开源组件管理工具(目前已支持 Objective-C 和 Swift),近年来普及率越来越高,几乎已是所有 Cocoa 开源项目的标配.另外,很多大点的团 ...
- WebView使用详解(二)——WebViewClient与常用事件监听
登录|注册 关闭 启舰 当乌龟有了梦想…… 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书 免费直播:AI时代,机器学习如何入门? 程序员8 ...
- 【three.js详解之一】入门篇
[three.js详解之一]入门篇 开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...
随机推荐
- select into from 与 insert into select 区别
1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Tab ...
- JS/CSS 全屏幕导航 – 从上到下动画
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- 原生js大总结四
031.数组常用的一些方法 1.push: 在数组最后添加一个或者多个元素,返回添加后数组的长度 2.pop: 从数组最后取出一个元素,返回的是数组的最后一个元素(取出的元素) 3.uns ...
- leetCode 103.Binary Tree Zigzag Level Order Traversal (二叉树Z字形水平序) 解题思路和方法
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- POJ 3669 Meteor Shower BFS 水~
http://poj.org/problem?id=3669 题目大意: 一个人从(0,0)出发,这个地方会落下陨石,当陨石落在(x,y)时,会把(x,y)这个地方和相邻的的四个地方破坏掉,求该人到达 ...
- Spring+Struts2+Hibernate的整合
这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架, 但是Spring也提供和其他框架的无缝整合,采用组件形 ...
- [React] Style a React component with styled-components
In this lesson, we remove the mapping between a React component and the styles applied to it via cla ...
- NSString常见用法
1.创建常量字符串 NSString *str = @"Hello World!"; 2.创建空字符串,给予赋值 NSString *str = [[NSString alloc] ...
- [TypeScript] Using Assertion to Convert Types in TypeScript
Sometimes the compiler needs help figuring out a type. In this lesson we learn how to help out the c ...
- POJ 1163 The Triangle 简单DP
看题传送门门:http://poj.org/problem?id=1163 困死了....QAQ 普通做法,从下往上,可得状态转移方程为: dp[i][j]= a[i][j] + max (dp[i+ ...