简介

介绍一些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. 2.4 PCI总线的配置

    PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求.PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空 ...

  2. 搜索引擎case︱从搜索序列文本看高端商务车︱统计之都

    朱雪宁(北京大学光华管理学院)               王汉生(北京大学光华管理学院) 摘要:本文对100万搜索引擎用户的13亿搜索序列文本进行探索分析,对高端车用户以及商学院人群做了描述对比,并 ...

  3. 用DDK开发的9054驱动 .

    和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧.因为,很多PCI的例子都是对S5933,就连微软出版的<Programming the Microsoft Wi ...

  4. 基于stm32的can总线彻底研究

    1.CAN总线的初始化 void can_init(void){      CAN_InitTypeDef        CAN_InitStructure;      CAN_FilterInitT ...

  5. 打开CSDN论坛出现403

    打开CSDN论坛出现403 在查找资料的过程中,出现"403-禁止访问"

  6. 百度地图JavaScript API经纬度查询-MAP

    百度地图JavaScript API经纬度查询-MAP-ABCDEFGHIJKMHNOPQRSTUVWXYZ: 搜索:<input type="text" size=&quo ...

  7. (luogu P1594)护卫队[TPLY]

    (luogu P1594) 护卫队 题目链接 https://www.luogu.org/problemnew/show/P1594 很好的一个模型 题目大意 有一个有序的车队,要求将其分成若干段,每 ...

  8. 期望$DP$ 方法总结

    期望\(DP\) 方法总结 这个题目太大了,变化也层出不穷,这里只是我的一点心得,不定期更新! 1. 递推式问题 对于无穷进行的操作期望步数问题,一般可用递推式解决. 对于一个问题\(ans[x]\) ...

  9. Spring入门看这一篇就够了

    前言 前面已经学习了Struts2和Hibernate框架了.接下来学习的是Spring框架...本博文主要是引入Spring框架... Spring介绍 Spring诞生: 创建Spring的目的就 ...

  10. C++学习-3

    引用与函数指针: 函数指针就是把函数名挖掉变成*p 函数指针的类型就是把p去掉 函数指针的引用(引用就是在类型和名字的中间加&) 函数指针加一个()就成调用函数了-----------p() ...