简介

介绍一些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. U-boot-1.1.4中关于hello_world.srec出错

    make[1]: *** No rule to make target `hello_world.srec', needed by `all'.  Stop. make[1]: Leaving dir ...

  2. FusionCharts封装-Category

    Categories.java: /** * @Title:Categories.java * @Package:com.fusionchart.model * @Description:Fusion ...

  3. 初识Windows服务 C#

    1.新建Windows服务   2.切换到代码视图,拷入如下代码 该服务以10S的间隔创建 d:/1.txt 文件 using System; using System.Collections.Gen ...

  4. 使用PHPword中文乱码并且下载的方法

    如果你的编码格式是utf-8的话就用这个 1.找到 Section.php 的 addText 函数 $givenText = utf8_encode($text); 改成 $givenText = ...

  5. 使用Spring-boot小结

    Spring-boot的特点是,通过注入的方式生成FsShell对象,来操作HDFS,其底层封装了HDFS的的shell命令 1. 添加Spring-boot依赖 pom.xml文件 <!--添 ...

  6. manacher模板(manacher)

    洛谷题目传送门 写完有一段时间了,发现板子忘记存在了这里...... 算法简述 一种字符串算法,\(O(n)\)高效求出以每个字符为对称中心的最长回文串长度. 然后,就可以进一步求出全串中最长回文串的 ...

  7. [POI2010]CHO-Hamsters

    KMP暴力求出next数组后 实际上是一个最短路问题,floyed搞一搞 然而会TLE 矩阵优化一下即可(倍增floyed) KMP在弱数据下可以AC..正解请看其他人博客 # include < ...

  8. openflow 和 sdn (软件定义网络) 原理和教程

    OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...

  9. CCF-201803-2 碰撞的小球

    问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒.当小球到达线段 ...

  10. JS报表打印分页CSS

    在调用window.print()时,可以实现打印效果,但内容太多时要进行分页打印. 在样式中有规定几个打印的样式 page-break-before和page-break-after CSS属性并不 ...