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,抛弃那些复杂的 ...
随机推荐
- css实现背景半透明文字不透明的效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【万里征程——Windows App开发】DatePickerFlyout、TimePickerFlyout的使用
已经有挺长时间没有更新这个专栏了,只是刚才有网友私信问我一个问题如今就火速更新上一篇~ 这一篇解说在WP上DataPickerFlyout和TimePickerFlyout的使用.但它们仅仅能在WP上 ...
- UVA 11646 - Athletics Track || UVA 11817 - Tunnelling the Earth 几何
题目大意: 两题几何水题. 1.UVA 11646 - Athletics Track 如图,体育场的跑道一圈400米,其中弯道是两段半径相同的圆弧,已知矩形的长宽比例为a:b,求长和宽的具体数值. ...
- Java Callable Future Example(java 关于Callable,Future的例子)
Home » Java » Java Callable Future Example Java Callable Future Example April 3, 2018 by Pankaj 25 C ...
- GridView与ArrayAdapter的结合
activity_main.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- 《从零開始学Swift》学习笔记(Day 63)——Cocoa Touch设计模式及应用之单例模式
原创文章,欢迎转载.转载请注明:关东升的博客 什么是设计模式.设计模式是在特定场景下对特定问题的解决方式.这些解决方式是经过重复论证和測试总结出来的. 实际上.除了软件设计,设计模式也被广泛应用于其它 ...
- 3dmax入门
动画 自己主动关键帧 设置关键帧 路径绑定 材质M打开 渲染f10 骨骼绑定. ..
- Android OnGestureListener用法 识别用户手势 左右滑动
Android可以识别用户的手势(即用户用手指滑动的方向),通过用户不同的手势,从而做出不同的处理 需要使用OnGestureListener 比如说看电子书的时候翻页,或者要滑动一些其他内容 直接上 ...
- LA 3602 - DNA Consensus String 枚举
原题地址:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- JMS服务器ActiveMQ的初体验并持久化消息到MySQL数据库中
JMS服务器ActiveMQ的初体验并持久化消息到MySQL数据库中 一.JMS的理解JMS(Java Message Service)是jcp组织02-03年定义了jsr914规范(http://j ...