iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告
简介
介绍一些CocoaPods一些特别的用法
编译环境
系统版本:macOS Sierra 10.12.6
Xcode: v9.2(9C40b)
1. 指定第三方库版本
1. 固定版本
target 'MyApp' do
pod 'AFNetworking','3.2.0'
end
这是将AFNetworking 完全限定在 3.2.0版本,不会更新
2.小版本浮动
target 'MyApp' do
pod 'AFNetworking','~> 3.2.0'
end
这样设置 AFNetworking 会在 3.2.0 ~ 3.9.9 之间版本浮动,不包含4.0.0(这里就是泛指,不必较真,不要提AFNetworking 没有3.9.9)
3.完全不限制版本
target 'MyApp' do
pod 'AFNetworking',
end
这样设置 AFNetworking 不限制版本,任何版本都可以,不过下载的版本下来肯定是最新的。
提示
在项目中,我建议使用方法一,也就是固定版本。特别是在多人开发的项目中
在项目中,可能会遇到更新pod。如果不指定版本的花,就会出现每个人第三方库版本不一样
如果是需要更新第三方库,直接修改版本号,更新pod即可。
尽量小组内做到协调统一
4.官方解释版本

'> 0.1' 大于0.1版本
'>= 0.1' 大于等于0.1版本
'< 0.1' 小于0.1版本
'<= 0.1' 小于等于0.1版本
'~> 0.1.2' 大于0.1.2 小于0.2,不含0.2
'~> 0.1' 0.1以上 1.0以下,不含0.1
'~> 0' 0和以上,等于没有此约束
CocoaPods 支持私有Spec仓库,我们可以建立自己的源,也可以使用非官方的源,只要符合规定的都可以指定
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/Artsy/Specs.git'
使用git的HEAD指向的分支
target 'MyApp' do
pod 'AFNetworking',:head
end
使用master分支
target 'MyApp' do
pod 'LBXScan',git:'https://github.com/MxABC/LBXScan.git'
end
指定branch
target 'MyApp' do
pod 'Reachability', :git => 'https://github.com/ashfurrow/Reachability.git', :branch => 'frameworks'
end
指定tag
target 'MyApp' do
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '3.2.0'
end
指定commit
target 'MyApp' do
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => 'e976d63'
end
使用子库
target 'MyApp' do
pod 'QueryKit/Attribute'
end
使用多个子库
target 'MyApp' do
pod 'QueryKit', :subspecs => ['Attribute', 'QuerySet']
end
使用本地库
通过:path 可以指定本地代码,不过需要确保目录中包含
podspec文件。
target 'MyApp' do
pod 'AFNetworking', :path => '~/Documents/AFNetworking'
end
指定target的依赖库
target 'MyApp' do
pod 'SDWebImage', '4.0'
target 'otherTaget' do
use_frameworks!
pod 'AFNetworking','3.2.0'
end
end
排除target
target 'MyApp' :exclusive => true do
pod 'AFNetworking','3.2.0'
end
指定xocdeproj
默认会使用
podfile文件同级目录下第一个xcodeproj,但也是可以指定的
xcodeproj 'testProject'
target:test do
pod 'AFNetworking','3.2.0'
xcodeproj 'otherProject'
end
指定连接的target
如果不显式指定连接的target,Pods会默认连接project的第一个target。如果需要,可以使用link_with指定连接一个活多个target
target link_with 'MyApp','otherApp' do
pod 'AFNetworking','3.2.0'
end
指定依赖库的配置文件
pod 'PonyDebugger', :configuration => ['Release']
指定target的配置文件
xcodeproj 'TestProject', 'Mac App Store' => :release, 'Test' => :debug
使用Dynamic Frameworks代替Static Libraries
通过标志use_frameworks!就可知开启这个功能。如果需要使用Swift的库,就必须加上这个标志了。
抑制警告
inhibit_warnings参数能够有效的抑制CocoaPods引入的第三方代码库产生的warning
target 'MyApp' do
pod 'AFNetworking','3.2.0',:inhibit_warnings => true
end
全局抑制警告
platform :ios, '8.0'
inhibit_all_warnings!
target 'MyApp' do
pod 'AFNetworking','3.2.0'
end
iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告的更多相关文章
- iOS -- CocoaPods
CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...
- iOS cocoapods升级及问题
安装 安装RubyCocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境.幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装.检测是否安装Ruby:$ ...
- iOS.CocoaPods.0
1. CocoaPods CocoaPods 是Objective-C (iOS and OS X) projects 的依赖管理器. A CocoaPod (singular) is a speci ...
- 为ant指定编译版本
用Eclipse的ant折腾了一天也没搞清楚为什么同样的设置ant出的class版本却不一样.后来下载个ant工具在命令行执行通过. 从网上抄得指定编译版本的方法如下: ant 运行时,必需依赖jdk ...
- git 如何让单个文件回退到指定的版本
1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- linux 安装jdk及tomcat指定jdk版本推荐
方法1:用yum命令安装 1. 查看当前jdk版本:Java –version,或者是:rpm -qa | grep jdk 2. 删除当前jdk:yum -y remove java-1.6 ...
- Eclipse指定JDK版本 Failed to load the JNI shared JVM.dll
Eclipse指定JDK版本 Failed to load the JNI shared JVM.dll 打开eclipse.ini添加 -vm C:/Java/jdk1.6.0_02/bin 参考: ...
- 为tomcat指定JDK版本
可以为tomcat指定JDK. 当系统中安装有多个版本的jdk时,可以为tomcat指定jdk版本. 在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下一行: exp ...
- Buildroot 指定内核版本
/******************************************************************************** * Buildroot 指定内核版本 ...
随机推荐
- 5.1 TLP的格式
当处理器或者其他PCIe设备访问PCIe设备时,所传送的数据报文首先通过事务层被封装为一个或者多个TLP,之后才能通过PCIe总线的各个层次发送出去.TLP的基本格式如图5?1所示. 一个完整的TLP ...
- R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...
- 关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法
关于FusionCharts图表宽度width的设置问题导致图表显示异常的解决办法 题设: 经常使用FusionCharts图表的朋友可能会遇到这个问题.就是在FusionCharts显示的时候有时候 ...
- 图像处理------基于Otsu阈值二值化
一:基本原理 该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现. Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重 要的部分是寻找图像二值化阈值 ...
- List转换成JSON对象报错(一)
List转换成JSON对象 1.具体报错如下 Exception in thread "main" java.lang.NoClassDefFoundError: org/apac ...
- Caused by: Unable to locate parent package [json-default] for [class com.you.user.action.StudentActi
1.错误描述 信息: Choosing bean (struts) for (com.opensymphony.xwork2.util.TextParser) 2014-7-13 1:52:04 or ...
- net.at.json.JSONException
1.错误描述 严重:Servlet.service() for servlet [clientServlet] in context with path [/User] threw exception ...
- NVIDIA Geforce GT 730 OpenGL 图形显示异常花屏
原因:C盘空间爆表,用dism++清理.结果用力过猛,清完后程序里的图形直接马赛克了... 上个图感受一下吧... 嘿别说,还有那么点艺术风! 别闹了,这个问题很严重,很严肃好不好! 因为程序和数据都 ...
- java用Kruskal实现最小生成树
今天更新这篇文章超级激动,因为我会最小生成树的算法了(其实昨天就开始研究了,只是昨天参加牛客网的算法比赛,结果又被虐了,好难过~) 最小生成树的算法,其实学了数据结构就会有一定的基础,Kruskal算 ...
- spring的PathVariable和value={}小技巧(shiro项目中来的三)
<property name="successUrl" value="/main/index" /> @RequestMapping(value=& ...