简介

介绍一些CocoaPods一些特别的用法

CocoaPods github地址

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一些特别的用法 指定版本、版本介绍、忽略警告的更多相关文章

  1. iOS -- CocoaPods

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

  2. iOS cocoapods升级及问题

    安装 安装RubyCocoaPods基于Ruby语言开发而成,因此安装CocoaPods前需要安装Ruby环境.幸运的是Mac系统默认自带Ruby环境,如果没有请自行查找安装.检测是否安装Ruby:$ ...

  3. iOS.CocoaPods.0

    1. CocoaPods CocoaPods 是Objective-C (iOS and OS X) projects 的依赖管理器. A CocoaPod (singular) is a speci ...

  4. 为ant指定编译版本

    用Eclipse的ant折腾了一天也没搞清楚为什么同样的设置ant出的class版本却不一样.后来下载个ant工具在命令行执行通过. 从网上抄得指定编译版本的方法如下: ant 运行时,必需依赖jdk ...

  5. git 如何让单个文件回退到指定的版本

    1.进入到文件所在文件目录,或者能找到文件的路径查看文件的修改记录 1 $ git log MainActivity.java 结果: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  6. linux 安装jdk及tomcat指定jdk版本推荐

    方法1:用yum命令安装 1.   查看当前jdk版本:Java –version,或者是:rpm -qa | grep jdk 2.   删除当前jdk:yum -y remove java-1.6 ...

  7. 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 参考: ...

  8. 为tomcat指定JDK版本

    可以为tomcat指定JDK. 当系统中安装有多个版本的jdk时,可以为tomcat指定jdk版本. 在catalina.sh文件和setclasspath.sh文件开头的空白处加上如下一行: exp ...

  9. Buildroot 指定内核版本

    /******************************************************************************** * Buildroot 指定内核版本 ...

随机推荐

  1. 关于linux下的嵌入式文件系统以及flash文件系统选择

    嵌入式linux下常见的文件系统 • RomFS:只读文件系统,可以放在ROM空间,也 可以在系统的RAM中,嵌入式linux中常用来作 根文件系统 • RamFS:利用VFS自身结构而形成的内存文件 ...

  2. Java之split()方法

    Java之split()方法 1.方法介绍 (1)public String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串 (2)public String[] s ...

  3. 五种基于RGB色彩空间统计的皮肤检测算法

    最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 ...

  4. Unhandled event loop exception GC overhead limit exceeded

    1.错误描述 java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.zip.ZipFile.<init>( ...

  5. 检测dll是32/64位 ?

    检测dll是32/64位 ? void CCheck32Or64Dlg::OnButton2() { CString fileName = ""; CFileDialog *fil ...

  6. Java和Flex整合报错(二)

    1.错误原因 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  7. HTML基础加强

    1. 什么是浏览器:解释和执行HTML源码的工具. 2. 什么是静态页面,什么样的页面是动态页面? 静态页面:htm,html(直接读取) 动态网页:asp,aspx,jsp,php(里面有代码请求时 ...

  8. 【原】Spring Boot 配置swagger2没有文档解决方案

    @Bean public Docket customImplementation(){ return new Docket(DocumentationType.SWAGGER_2) .select() ...

  9. 转:SQL进阶之变量、事务、存储过程与触发器

    一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET ...

  10. 洛谷P2402 奶牛隐藏(网络流,二分答案,Floyd)

    洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛 ...